2016-06-16 31 views
1

私は、サーバーにデータを送信するために、このAjaxコードを使用しています:methodは問題があるGETまたはPOST

ありながら

$.ajax({ 
    data: postData, 
    type: method, 
    url: url, 
    timeout: 20000, 
    contentType: "application/x-www-form-urlencoded;charset=UTF-8", 
    error: function(jqXHR,textStatus,err){alert("Error returned from ajax call "+err);}, 
    success: function(data,status,jqXHR){ 
     // process response... 
    } 
}); 

postDataは、多くの値を持つクエリ文字列でありますÄlypuhelimen lisävarusteetのような値を含むクエリ文字列を送信すると、データベースの結果は�lypuhelimen lis�varusteet

です。 UTF-8を使用していますが、これは正常に動作し、データベースにポストして保存するときにはうまくいきます...それはエンコーディングを駄目にするAJAXです...

私はencodeURIComponent私はそれを使用する場合、データは、それが%C4lypuhelimen%20lis%E4varusteetになった...同じエスケープ()関数のために行く...

任意のヘルプは理解されるであろう...

+0

申し訳ありませんが、みんな!問題はポストデータそのものでした... postDataは、escape()を使用してすべてのクエリ変数をエスケープするためのエスケープ()の代わりにencodeURIComponent()を使用して解析されていました... –

答えて

0

情報だけのために、同じような状況に落ちる可能性がある他の人を助けるために...

問題がPOSTDATA自体とあった...それは、すべてのポスト変数が適用されるような解析されました。エスケープ()で...エコー()の代わりにencodeURIComponent()を使用しました!

概要: DONOT(encodeURIComponentでを使用して...クエリコンポーネント・エスケープURLにエスケープ()関数を使用)の代わりに...

0

utf16_binするデータベース内の列を変更してみてください照合

あなたはPHPデータベース接続コードを送ります。

+0

データベースの列はutf8で、送信されたデータと同じです... ajaxなしで呼び出された場合、同じjs/form/phpコードがデータをデータベースに完全に保存します...したがって、データベースの照合に問題はありませんまたは接続照合... –

+0

あなたのPHPファイルがutf-8で、データベースへの接続がutf-8文字セットであることを確認してください。データベースは正しく保存されていますか? –

+0

はい私はphpファイルがutf-8ヘッダーとデータベースを送信し、その接続照合がutf-8 ...であることを確認しました。前に述べたように...もし私がajaxを使用しなければ..ストリングは完全に正しいですデータベース内で、私のPHP上で完璧なHTML出力ページを生成...これは、何かがajax呼び出し中に混乱していることを確認します... –

1

jQuery Base64エンコードを試してください。

はJavaScript:

<script src="jquery.min.js"></script> 
<script src="jquery.base64.min.js"></script> 
<script> 
    enctext = $.base64.encode("yourtext"); 
    //your ajax code goes here. 
</script> 

PHP:

<?php 
    $org_text = base64_decode($_POST['your_variable']); 
?> 

jQueryのBase64でプラグイン。

ここからダウンロードしてください。

https://github.com/carlo/jquery-base64

+0

これは、JSのすべてのPOST変数とPHPのbase64_decodeにbase64_encodeする必要があることを意味します...同じPHPがajaxに使用されているため通常の両方の呼び出し...また、base64_encodeはデータを破損することがあります... –

関連する問題