ホームページ > 記事 > ウェブフロントエンド > jquery ajaxがie8に対応していない問題の解決方法
jquery ajax が ie8 と互換性がない場合の解決策: まず、対応するコード ファイルを開き、次に "{foo:["bar1", "bar2"]} などのコード ステートメントを使用して JSON 形式を使用してデータをリクエストします。 」。
このチュートリアルの動作環境: Dell G3 コンピューター、Windows 7 システム、jquery1.10.0&&ie8 バージョン。
推奨: "javascript 基本チュートリアル""jquery ビデオ チュートリアル"
jQuery の AJAX と IE の非互換性の解決策について
jQuery の AJAX: get メソッドを使用してデータが存在するかどうかを検出すると、IE と互換性がないことがわかります。
AJAX:post メソッドを使用すると、Chrome/FireFox/IE では正しい結果が表示されますが、AJAX:get メソッドを使用すると、IE は正しい結果を返すことができません。
データが get メソッドの長さ制限を超えている可能性はありますか? 合計で少しのデータしか転送できませんでした。除外します。
インターネット上の一部のネチズンは、IE のキャッシュに問題があると述べています。時刻番号 new Date().getTime() を追加するなど、リクエスト データの後に乱数を追加するだけです。
前のコードに乱数を追加しましたが、「Math.random()」を使用しても機能しません。時間を使用する方が信頼性が高くなりますか?
次に、時刻を取得するように変更してみます。パラメータに「new Date().getTime()」を追加しても、テストを繰り返しても動作しません。本当に不可解です。このエラーも解消されます。
マニュアルを何度も確認した結果、要求されたデータ形式が {foo:["bar1", "bar2"]} のような JSON 形式のままであることがわかり、この形式で記述しました。そして実際に正しいクエリ結果が返されました。 IE にまだこの要件があるとは知りませんでした。 (終了)
以前の形式:
type: "get", data: "bid="+my_bid+"&name_cn="+name_cn+"&timeStamp="+new Date().getTime(),
改善された形式:
type: "get", data: {'bid':my_bid,'name_cn':name_cn,'timeStamp':new Date().getTime()},
については、jQuery マニュアルに記載されています:
data Object,String
データをサーバーに送信します。リクエスト文字列形式に自動的に変換されます。 GET リクエストの URL に追加されます。
この自動変換を無効にするには、processData オプションの説明を参照してください。キー/値形式である必要があります。
配列の場合、jQuery は異なる値に対して同じ名前を自動的に対応させます。たとえば、{foo:["bar1", "bar2"]} は "&foo=bar1&foo=bar2" に変換されます。
コード スニペット:
var siteUrl="http://blog.sina.com.cn/cnwyt"; jQuery.ajax({ type: "get", url: siteUrl+"cosmetics/product/ajax_check?", //data: "bid="+my_bid+"&name_cn="+name_cn+"&timeStamp=" + new Date().getTime(), data: {'bid':my_bid,'name_cn':name_cn,'timeStamp':new Date().getTime()}, dataType: 'json', error: function (err) { alert('网络故障,请与管理员联系!') }, success: function (message) { if(message!=false){ //ture的代码 }else{ //false的代码 } });
プログラミング関連の知識について詳しくは、プログラミング教育をご覧ください。 !
以上がjquery ajaxがie8に対応していない問題の解決方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。