In diesem Artikel wird hauptsächlich die Lösung für den domänenübergreifenden Ajax-Zugriffsfehler 501 vorgestellt. Interessierte Freunde können darauf verweisen.
Problem: Ajax-Cross-Domain-Zugriffsfehler 501
Beim Ausführen des folgenden Codes wird Fehler 501 gemeldet
$.ajax({ type: "POST", url: "http://192.168.1.202/sensordata.php", contentType:'application/json; charset=utf-8', data: JSON.stringify(ajaxPostData), dataType:'json', success: function(data){ //On ajax success do this console.info("success."); if (data["status"] == "ok"){ alert("Settings is Ok. The Machine is rebooting."); } }, error: function(xhr, ajaxOptions, thrownError) { //On error do this console.info("error."); if (xhr.status == 200) { alert(ajaxOptions); } else { alert(xhr.status); alert(thrownError); } } });
Lösung:
ContentType entfernen:' application /json; charset=utf-8'
Grund:
1 Wenn domänenübergreifend, außer dass der Inhaltstyp application/x-www-form-urlencoded, multipart/form-data oder ist text Mit Ausnahme von /plain wird der Browser zunächst dazu veranlasst, eine Anfrage mit der OPTIONS-Methode zu senden.
2 Ihre ursprüngliche Anfrage ist beispielsweise die Methode POST. Wenn das Allow-Attribut im von der ersten Anfrage zurückgegebenen Ergebnisheader keine POST-Methode hat,
3, dann ist die zweite Anfrage It wird zu diesem Zeitpunkt nicht gesendet. Die Browserkonsole meldet einen Fehler und teilt Ihnen mit, dass die POST-Methode vom Server nicht unterstützt wird.
Verwandte Empfehlungen:
Beispielfreigabe für eine domänenübergreifende perfekte Ajax-Lösung
Fehlerlösung für Parserfehler unter domänenübergreifender Ajax-Anfrage
JS implementiert domänenübergreifende Ajax-Request-Flask-Antwortinhalte
Das obige ist der detaillierte Inhalt vonDetaillierte Lösungsbeispiele für den Ajax-Cross-Domain-Access-Fehler 501. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!