这让我现在怀疑自己。
我们可以通过jQuery Ajax发出POST请求。像
这样的东西$.post("https://external.com", $('form').serialize());
在我的Chrome控制台中,我可以看到显示
的消息XMLHttpRequest无法加载{external.com}。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许原点'mysite.com'访问。
但是,在网络选项卡中,此Ajax调用实际上返回200,当然,外部Web服务确实处理了我的请求。
任何人都可以对我有所了解,我对此感到疯狂......
非常感谢。
答案 0 :(得分:-1)
我想你可能会误解CORS机制的想法。如果您仔细阅读该消息,您应该明白。
请求的资源上没有'Access-Control-Allow-Origin'标头。
它表示资源没有必需的标头,因此很明显浏览器必须首先发出请求才能检查资源的标头。
因此,Origin'mysite.com'不允许访问。
此部分还说你不允许获取跨源资源,而我认为你可能希望CORS能够像阻止脚本一样运行(例如,由攻击者注入)
您可以阅读有关CORS here的更多信息。重要的(和tl; dr ;;-))部分是:
跨域资源共享标准的工作原理是添加新的HTTP标头,允许服务器使用Web浏览器描述允许读取该信息的起源集。