Cet article présente principalement en détail la solution à l'erreur d'accès inter-domaines ajax 501. Il a une certaine valeur de référence. Les amis intéressés peuvent s'y référer. J'espère qu'il pourra aider tout le monde.
Problème : erreur d'accès inter-domaines ajax 501
L'exécution du code suivant signalera l'erreur 501
$.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); } } });
Solution :
Supprimer le type de contenu :' application /json; charset=utf-8'
Raison :
1 Lorsqu'il est inter-domaine, sauf que contentType est application/x-www-form-urlencoded, multipart/form-data ou text À l'exception de /plain, le navigateur sera déclenché pour envoyer d'abord une requête avec la méthode OPTIONS.
2 Par exemple, votre requête d'origine est la méthode POST. Si l'attribut Allow dans l'en-tête de résultat renvoyé par la première requête n'a pas de méthode POST,
3 alors la deuxième requête l'est. ne sera pas envoyé. À ce moment, la console du navigateur signalera une erreur, vous indiquant que la méthode POST n'est pas prise en charge par le serveur.
Recommandations associées :
Partage d'exemples de solutions parfaites entre domaines Ajax
Solution d'erreur pour analyser l'erreur sous une requête inter-domaines Ajax
JS implémente le contenu de réponse du flacon de requête inter-domaines Ajax
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!