サーバーにテキストを送信するために、jqueryajax呼び出しを使用しています。
サーバーに送信されるテキスト(ユーザー入力)には、疑問符が含まれている場合があります。疑問符「?」が1つしかない場合 問題ありませんが、疑問符が2つある場合は「??」並べると、ajax呼び出しは適切に機能しなくなります。
テキストの例:
これはテキストの例ですか?はい、そうです...
生成されます:
これはテキストの例ですかjQuery17205792287601360849_1347644361296はい、そうです...
この問題の根本は、ajax呼び出しのキャッシュにあると思います。
キャッシュデフォルト:true、dataType'script'および'jsonp'の場合はfalse
falseに設定すると、要求されたページがブラウザによってキャッシュされないように強制されます。キャッシュをfalseに設定すると、クエリ文字列パラメータ「_=[TIMESTAMP]」もURLに追加されます。
とにかく2つ?? jsonを使用したjqueryajax呼び出しによって送信されたテキスト文字列を並べて表示すると、クエリ文字列パラメータが2つではなく元のテキストに表示されます。
さて、これに対する最良の解決策は何ですか?
誰かが私が2つではないことを保証する正規表現でstr.replace関数を書くのを手伝ってもらえますか?テキスト文字列に並べて...?
どうも!
// text will be stored in the database via ajax call
$.ajax ({
type: "POST",
url: "ajax/ajax_special_functions.php",
data: data_string,
dataType: "json",
success: function(recive_obj) {
// Some more code...
}
});
テキストはdata_stringに含まれています...2つある場合?? 本文では、ajax呼び出しは引き続き実行され、データはサーバーに送信されますが、コールバック関数は実行されません...
更新: この問題は、正規表現str replaceを使用して一時的に解決しました-誰かがこの問題を解決するためのよりクリーンな方法を見つけた場合は、私に知らせてください。