NetworkError:无法在'XMLHttpRequest'上执行'send'

Moo*_*o33 15 ajax jquery http-post

我正在尝试向我的笔记本电脑本地托管的服务器发出POST ajax请求,但我似乎无法获得任何信息.当我单击我的站点上的一个按钮(localhost)时,我可以看到服务器传回正确的信息,但在前端我收到此错误:

错误:NetworkError:无法在'XMLHttpRequest'上执行'send':无法加载' http:// comp-ip '.

var param = JSON.stringify({varA:"varA",varB:"varB"});

$.ajax({
  type: "POST", 
  url: "http://comp-ip",
  async: false, 
  data: param,
  success: function(result, status, xhr){
    alert(result + ": " + status);
  },
  error: function(xhr, status, err) {
    alert(status + ": " + err);
  }
});
Run Code Online (Sandbox Code Playgroud)

它似乎每次都会引发错误,而不是"成功".任何人都知道出了什么问题?

编辑:我已经尝试在没有AJAX的情况下发送正常的POST请求,它也会引发"未定义"错误:

$(document).ready(function(){
    var param = JSON.stringify({varA:"varA",varB:"varB"});
     $("#btn").click(function(event){
           $.post( 
              "http://ip",
               param,
               function(data) {
                 $('#container').html(data);
               }
           ).fail(function(error) { alert(error.responseJSON) });
        });
});
Run Code Online (Sandbox Code Playgroud)

我尝试过的其他事情:1)将浏览器更改为Safari(同样的事情,服务器返回信息但网站出错)2)从false设置async = true.出于某种原因,当我将其设置为true时,服务器根本不响应.当它为假时,服务器响应.

ytp*_*lai 11

几分钟前,我确实遇到了这个问题.问题是你需要设置async:falseasync:true.我不确定为什么这会有效,我想因为HTML5比XML更新.

错误在这个网站上有点不同,但我认为它类似:JavaScript console.log导致错误:"主线程上的同步XMLHttpRequest已弃用......"

更新

嗨,我回来了一些新的和改进的信息.Cross-Origin与端口以及域/ IP一起发生,并且可能与大多数不错的浏览器一起使用.如果您想知道发生了什么,请尝试将IP更改为localhost,反之亦然(如果您使用的是localhost).请记住,当您使用不同的端口时也会发生此问题.要快速解决问题,请确保在后端服务器的标头中放置正确的Access-Control标头response.addHeader("Access-Control-Allow-Origin", "*");.

代码源自此问题


Moo*_*o33 5

这是一个跨源资源问题(CORS).我的服务器正在向我返回正确的信息,但我的浏览器拒绝接受它.要修复它,我必须在我的java服务器(不是我的站点)上添加2行,将它们设置为响应头:

yourownvariable.setHeader("Access-Control-Allow-Origin:", "origin url of your site");
yourownvariable.setHeader("Access-Control-Allow-Methods", "GET, POST,PUT");
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

74880 次

最近记录:

6 年 前