Die Lösung für die Inkompatibilität von JQuery Ajax mit IE8: Öffnen Sie zuerst die entsprechende Codedatei. Verwenden Sie dann das JSON-Format, um Daten anzufordern, mit Codeanweisungen wie „{foo:[“bar1“, „bar2“]}“.
Die Betriebsumgebung dieses Tutorials: Dell G3-Computer, Windows 7-System, jquery1.10.0&&ie8-Version.
Empfohlen: „Javascript-Grundlagen-Tutorial“ „JQuery-Video-Tutorial“
Über die Lösung, wenn jQuerys AJAX nicht mit IE kompatibel ist
Bei Verwendung von jQuerys AJAX: get-Methode, um zu erkennen, ob die Daten vorhanden sind Es wird festgestellt, dass der IE nicht kompatibel ist.
Bei Verwendung der AJAX:post-Methode können bei Verwendung von Chrome/FireFox/IE die richtigen Ergebnisse angezeigt werden, bei Verwendung der AJAX:get-Methode kann IE jedoch nicht die richtigen Ergebnisse zurückgeben.
Könnte es sein, dass die Daten die Längenbeschränkung der get-Methode überschreiten? Das ist insgesamt nicht möglich. ausschließen.
Einige Internetnutzer sagten, es handele sich um ein Problem mit dem IE-Cache. Fügen Sie einfach eine Zufallszahl nach den Anforderungsdaten hinzu, z. B. das Hinzufügen der Zeitnummer new Date().getTime().
Ich habe im vorherigen Code Zufallszahlen hinzugefügt, aber die Verwendung von „Math.random()“ funktioniert nicht. Ist es zuverlässiger, die Zeit zu nutzen?
Dann versuchen Sie, es so zu ändern, dass Sie nach dem Parameter „new Date().getTime()“ hinzufügen und es wiederholt testen, aber es funktioniert immer noch nicht. Auch dieser Fehler ist behoben.
Nach mehrmaligem Durchsehen des Handbuchs stellte ich fest, dass das angeforderte Datenformat immer noch ein JSON-Format hat, z. B. {foo:["bar1", "bar2"]}, und habe es dann in diesem Format und mit der richtigen Abfrage geschrieben Die Ergebnisse kamen wirklich zurück. Ich wusste wirklich nicht, dass der IE diese Anforderung noch hat. (Ende)
Vorheriges Format:
type: "get", data: "bid="+my_bid+"&name_cn="+name_cn+"&timeStamp="+new Date().getTime(),
Verbessertes Format:
type: "get", data: {'bid':my_bid,'name_cn':name_cn,'timeStamp':new Date().getTime()},
Es wird im jQuery-Handbuch wie folgt beschrieben:
data Object,String
Daten werden an den Server gesendet. Wird automatisch in das Anforderungszeichenfolgenformat konvertiert. Wird in GET-Anfragen an die URL angehängt.
Siehe die Beschreibung der ProcessData-Option, um diese automatische Konvertierung zu deaktivieren. Muss im Schlüssel/Wert-Format vorliegen.
Wenn es sich um ein Array handelt, weist jQuery verschiedenen Werten automatisch denselben Namen zu. Beispielsweise wird {foo:["bar1", "bar2"]} in "&foo=bar1&foo=bar2" konvertiert.
Code-Schnipsel:
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的代码 } });
Weitere Kenntnisse zum Programmieren finden Sie unter: Programmierlehre! !
Das obige ist der detaillierte Inhalt vonSo lösen Sie das Problem, dass JQuery Ajax nicht mit IE8 kompatibel ist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!