记录一个因网络同源策略(Same Origin Policy)引起的错误

记录一个因网络同源策略(Same Origin Policy)引起的错误

最近用.NET Core加C#写了一个REST API的web应用。将应用放在了Mircosoft Azure上。测试的时候,用Postman发送各种HTTP请求,都成功执行并得到返回数据。而后又用JS写了一个简单的客户端,利用XMLHttpRequest发送请求。用Chrome运行客户端的时候,问题出现了。在发送GET请求的时候,没有任何数据返回。
一开始以为是语法或者是同步异步的问题,不停地修改代码,折腾了几个小时。还是毫无进展。这时候心如死灰的我打开了浏览器的控制台,发现报了这个错误(为了安全,域名伪装了一下):

Failed to load https://xxxx.azurewebsites.net/api/xxx/: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.

这才恍然大悟,Same Origin Policy!!! 这是一个网路应用安全机制。在这个机制规定下,浏览器只允许和某网页同源的另一网页来访问该网页的数据。换句话说,只有当A网页和B网页同源时,A网页才可以获取B网页的数据。这个机制主要是为了保护网站的数据安全不会被恶意获取。
那么这个“源”指的是什么呢? 引用wiki里的解释:

An origin is defined as a combination of URI

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值