即使使用CORS也无法POST到服务器

时间:2014-03-13 23:08:22

标签: javascript post xmlhttprequest cors

我正在尝试将POST发送到给定的服务器。我正在使用XMLHttpRequest而且我一直在使用 XMLHttpRequest无法加载http://example.org。 No' Access-Control-Allow-Origin'标头出现在请求的资源上。起源' http://fiddle.jshell.net'因此不允许访问。我理解CORS的概念,我已经添加了

http_connection.withCredentials = true;
http_connection.setRequestHeader('Access-Control-Allow-Headers', '*');
http_connection.setRequestHeader('Access-Control-Allow-Origin', '*');
虽然它们可能并非都是必要的。我仍然得到错误。我可以尝试使用XMLHttpRequests吗?更多关于如何查看给定服务器是否只是简单地无法发布到?

3 个答案:

答案 0 :(得分:1)

不,你没有得到它。这些标题必须由服务器发送,而不是由您发送。服务器必须允许您通过AJAX访问。

如果客户端代码可以启用CORS,那就没有任何意义。

答案 1 :(得分:0)

修复方法是将标头添加到服务器发送的响应中,但是应该小心。

在大多数情况下,当您在本地开发但API在另一台计算机上时会发生这种情况。在Chrome中有一种非常难看的方式。

在Mac上,您需要执行以下操作:

open -a Google\ Chrome --args --disable-web-security

在终端。我相信其他操作系统也有非常类似的解决方法。

但是,当然,这不是一个很好的方法。我会调整开发服务器,向我发送允许从开发域访问的标头。

答案 2 :(得分:0)

--disable-web-security可以运行,但会使浏览器的安全性受到威胁,您可能会从互联网上获取任何病毒或恶意软件。