绕过CORS问题在Chrome

问题描述 投票:0回答:2

我们正面临着在那里通过XMLHttpRequest使用Chrome要求越来越失败,以下错误的问题:

无法加载<server url>:没有“访问控制允许来源”标头出现在所请求的资源。因此,原产地“<client domain>”是不允许访问。

此错误是Chrome的特定,因为我们没有在IE中得到这个问题。反正在JavaScript绕过这个错误。

javascript google-chrome
2个回答
3
投票

没有,幸好没有。

同样的原产地政策是通过浏览器实施,以防止Javascript代码作出针对不同产地/域比从它被服务的一个请求的安全理念。因此,使开发人员从JavaScript绕过这将是一件坏事。

跨域资源共享(CORS)是使用其他HTTP标头,告诉浏览器,让Web应用程序运行在一个原点(域)有权在不同的起源从服务器访问选定资源的机制。 Web应用程序使得跨来源HTTP请求时,它请求具有比其自己的原点不同来源(域,协议和端口)的资源。

来源:Cross-Origin Resource Sharing (CORS)

如果你在API的控制: 添加包含您的请求源自域的Access-Control-Allow-Origin头。

如果你不是在API的控制: 问API的开发者有您的域名添加到Access-Control-Allow-Origin头。

编辑: 添加正确的标题不会“发出请求的OPTIONS请求,而服务器只接受POST”。 该OPTIONS请求是preflight request检查,看看是否CORS调用实际上可以做。如果预检要求有正确的头球攻门,POST请求将遵循您可以在下面的图片中看到:

OPTIONS before POST

你可以找到所有的基本信息CORS在文章Understanding CORS


0
投票

虽然它的限制,可以尝试在任何地方使用CORS https://github.com/Rob--W/cors-anywhere或Chrome扩展here,允许你绕过CORS(请确保您关闭这个功能时不测试,因为它会导致与来自其他网站的请求问题)

© www.soinside.com 2019 - 2024. All rights reserved.