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

我正在尝试向我的笔记本电脑本地托管的服务器发出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); } }); 

它似乎每次都会引发错误,而不是“成功”。 任何人都知道什么是错的?

编辑:我已经尝试在没有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) }); }); }); 

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

我几分钟前就遇到过这个问题。 问题是您需要将async:false设置为async:true 。 我不确定为什么这样可行,我想因为HTML5比XML更新。

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

更新

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

代码源自此问题

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

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

您可以像这样在Windows上使用Chrome测试您的网页

 chrome.exe --allow-file-access-from-files