Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 即使使用CORS也无法发布到服务器_Javascript_Post_Xmlhttprequest_Cors - Fatal编程技术网

Javascript 即使使用CORS也无法发布到服务器

Javascript 即使使用CORS也无法发布到服务器,javascript,post,xmlhttprequest,cors,Javascript,Post,Xmlhttprequest,Cors,我正在尝试向给定服务器发送帖子。我正在使用XMLHttpRequest,而且我一直在 无法加载XMLHttpRequest。请求的资源上不存在“Access Control Allow Origin”标头。因此,不允许访问源“”。我理解CORS的概念,并添加了 http_connection.withCredentials = true; http_connection.setRequestHeader('Access-Control-Allow-Headers', '*'); http_con

我正在尝试向给定服务器发送帖子。我正在使用XMLHttpRequest,而且我一直在 无法加载XMLHttpRequest。请求的资源上不存在“Access Control Allow Origin”标头。因此,不允许访问源“”。我理解CORS的概念,并添加了

http_connection.withCredentials = true;
http_connection.setRequestHeader('Access-Control-Allow-Headers', '*');
http_connection.setRequestHeader('Access-Control-Allow-Origin', '*');

尽管它们可能并非都是必要的。我仍然得到错误。XMLHttpRequests还有什么我可以尝试的吗?更多关于如何查看给定服务器是否无法发布到的信息?

不,您不了解。这些标题必须由服务器发送,而不是由您发送。服务器必须允许您通过AJAX进行访问


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

修复方法是将头添加到服务器发送的响应中,但是,您应该谨慎处理

在大多数情况下,当您在本地开发但API在另一台机器上时,会发生这种情况。在Chrome中有一种非常丑陋的方法

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

open -a Google\ Chrome --args --disable-web-security
在终点站。我相信其他操作系统也有类似的解决方法


但当然,这不是一个好办法。我会调整开发服务器,将允许从开发域访问的标题发送给我。

--禁用web安全
可以工作,但会使浏览器的安全易受攻击,您可能会从internet上收到任何病毒或恶意软件。

CORS不是这样工作的,标题是在服务器的响应上设置的。@Musa来源、访问控制请求方法和访问控制请求方法标题的用途是什么?
Access Control Request Method
允许您通过http动词限制或允许请求,例如
POST
GET
DELETE
,ETC如果我的两个请求头没有意义,那么除了凭据开关之外,我还能做什么?如果您没有访问web服务器的权限,或者可以让服务器管理员启用CORS头,唯一的解决方案就是在您自己的服务器中创建代理。您可以向服务器发出请求,服务器会询问远程服务器,然后将响应返回给您。它也可以在Windows上工作(
chrome--disable web security
)。在我的开发机器中,我总是以这种方式打开Chrome。Chrome会告诉你这个选项是不允许的,但它确实有效。当然,这只是发展的一种解决办法。普通用户不会启用此功能。