Javascript 即使使用CORS也无法发布到服务器
我正在尝试向给定服务器发送帖子。我正在使用XMLHttpRequest,而且我一直在 无法加载XMLHttpRequest。请求的资源上不存在“Access Control Allow Origin”标头。因此,不允许访问源“”。我理解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
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会告诉你这个选项是不允许的,但它确实有效。当然,这只是发展的一种解决办法。普通用户不会启用此功能。