2012-01-14 29 views
4

タグを使用してファイルを検索するWebページを開発しています。 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']); 

私が検索し、ここにSO上でこの程度の関連質問に見えたが、非は、残念ながら私を助けました。これを使用する

UPDATE

はそれを解決しました!今はうまく動作します。

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

てみ '前URLENCODEを使用することができます "タグ=" + encodeURIComponentで(タグ)+ "&リミット=" + ENC odeURIComponent(limit) '、または' {tags:tags、limit:limit} 'になります。 –

+0

データ: "tags =" + encodeURIComponent(タグ)+ "&limit =" + limit –

+0

{tags:tags、limit:limit}のいずれも機能しません。 –

答えて

8

データ(タグ)encodeURIComponentで処理する(使用してサーバーに送信する前にエンコードする必要があります)

+0

データ: "tags =" + encodeURIComponent(タグ)+ "&limit =" + limit –

+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 "' 基本的に、どの文字エンコードが失われているかを追跡する必要があります。 –

+0

ありがとう、それはInternet ExplorerでのJQuery AJAX要求で特殊文字を送信することで私の問題を解決しました。 –

0

あなたはJSONオブジェクト

などを使用することによって、これを達成することができます [{ "AttributeId": "4035 」、 "値": "ストリート&ハウス"}]

か、ポスト

関連する問題