如果我们是发起到另一个网站的请求,那么请求可能会失败。
例如,我们尝试请求 http://example.com 这个地址:
try {
await fetch('http://example.com');
} catch(err) {
alert(err); // Failed to fetch
}
跟预期的一样,请求失败了。
这里的核心概念是源(Origin):由 协议、域名、端口三部分组成。
跨域请求(发送到另一个域(或是子域)、协议或端口的请求)需要来自远程端的特殊标头支持。
该策略称为“ CORS”:是 Cross-Origin Resource Sharing(跨域资源共享)的简写。
一段简史:为什么需要 CORS
CORS 的存在是为了保护互联网免受恶意黑客的攻击。
我们做一个非常简短的历史回溯。
很久以前,一个站点的脚本是无法访问另一站点内容的。
这个简单而强大的规则是互联网安全的基础。例如,来自 hacker.com 网站的恶意脚本无法访问 gmail.com 网站上的用户邮箱,这样用户会感觉安全。
当时,JS 还没有任何特殊的方法来执行网络请求,它只是用来装饰网页的一种玩具语言。但是 Web 开发人员需要更多功能,于是发明了各种技巧来解决该限制向其他网站发出请求。
使用表单
与另一台服务器通信的一种方法是在那里提交