2012-01-14 36 views
4

我正在開發一個網頁,其中用戶正在使用標籤搜索文件。 我正在使用jQuery Ajax來執行對API(數據庫)的遠程調用。 當我使用像a-z這樣的非特殊字符但是在使用例如åäö時失敗時,它一切正常。無法通過jQuery發送特殊字符ajax

在服務器端我使用PHP。我打印標籤以查看它是否「到達」,並且所有a-z都正常工作,但是根本沒有顯示。他們似乎沒有「到達」。

什麼可能是錯的?

這是我的jQuery代碼:

var tags = $('#tags').val(); 

$.ajax ({ 
    type: "POST", 
    url: base_url + "search", 
    data: "tags=" + tags + "&limit=" + limit, 
    beforeSend: function (html) { 
      $("#search_results").html("Searching for files..."); 
    }, 
    success: function (html) { 
      $("#search_results").html(html); 
    }, 
    error: function (html) { 
      $("#search_results").html('Something went wrong!'); 
    } 
}); 

這是我的服務器端代碼:

echo ($_POST['tags']); 

我搜索看着這個位置相關的問題上左右,但非讓我很遺憾。

UPDATE

使用這個解決它!現在工作正常。

{tags: encodeURIComponent(tags), limit: limit} 
+0

嘗試'之前使用的URLEncode 「標籤=」 + encodeURIComponent方法(標籤)+ 「&限=」 + ENC odeURIComponent(limit)',或'{tags:tags,limit:limit}'。 – 2012-01-14 16:24:40

+0

這也不工作:data:「tags =」+ encodeURIComponent(tags)+「&limit =」+ limit – 2012-01-14 16:28:48

+0

{tags:tags,limit:limit}也不起作用。 – 2012-01-14 16:44:05

回答

8

數據(標籤)必須使用encodeURIComponent方法()

+0

這不工作:data:「tags =」+ encodeURIComponent(tags)+「&limit =」+ limit – 2012-01-14 16:29:20

+2

請確保您的流程的所有部分都使用UTF-8 檢查: HTML頁面; 請求編碼; 服務器端編碼; 'AJAX.setRequestHeader(「Content-type」,「application/x-www-form-urlencoded; charset = UTF-8」);' 'meta http-equiv =「content-type」content =「text/html; charset = UTF-8「' 基本上,你將不得不跟蹤哪一步字符編碼丟失。 – 2012-01-14 16:35:41

+0

謝謝,它解決了我在Internet Explorer中的JQuery AJAX請求中發送特殊字符的問題。 – 2014-05-02 13:24:55

0

您可以通過使用JSON對象

如實現這一目標將其發送到服務器之前編碼: [{ 「屬性Id」:「4035 」, 「值」: 「街頭&之家」}]

,或者你可以交

相關問題