跨域 是指a页面想获取b页面资源,如果a、b页面的协议、域名、端口、子域名不同,或是a页面为ip地址,b页面为域名地址,所进行的访问行动都是跨域的,而浏览器为了安全问题一般都限制了跨域访问,也就是不允许跨域请求资源。
问题1:已拦截跨源请求:同源策略禁止读取远程资源。(原因:CORS 请求未能成功)。
问题2:已拦截跨源请求:同源策略禁止读取远程资源。(原因:CORS 头缺少‘Access-Control-Allow-Origin’)。
.NET MVC下的解决方法:
在项目的配置文件中的 <system.webServer> 添加以下代码段可以解决以上两个问题:
<!--设置允许跨域访问开始-->
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Credentials" value="true" />
<add name="Content-Type" value="application/json"/>
<add name="Access-Control-Allow-Headers" value="Content-Type" />
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
</customHeaders>
</httpProtocol>
<handlers>
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<remove name="OPTIONSVerbHandler" />
<remove name="TRACEVerbHandler" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
<!--设置允许跨域访问结束-->