欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ajax跨域访问报错501的解决方法

程序员文章站 2022-09-05 18:40:46
问题:ajax跨域访问报错501 运行下面的代码会报错501 $.ajax({ type: "post", url: "http://1...

问题:ajax跨域访问报错501

运行下面的代码会报错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);
      }
    }
  });

解决方法:

去掉 contenttype:'application/json; charset=utf-8'

原因:

1 在跨域的时候,除了contenttype为application/x-www-form-urlencoded, multipart/form-data或者text/plain外,都会触发浏览器先发送方法为options的请求。

2 比如说,你原来的请求是方法方法post,如果第一个请求返回的结果header中的allow属性并没有post方法,

3那么第二个请求是不会发送的,此时浏览器控制台会报错,告诉你post方法并不被服务器支持。

参考文档:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。