跨域请求被阻止:& 原因:缺少 CORS 标头“Access-Control-Allow-Origin”

Posted

技术标签:

【中文标题】跨域请求被阻止:& 原因:缺少 CORS 标头“Access-Control-Allow-Origin”【英文标题】:Cross-Origin Request Blocked: & Reason: CORS header 'Access-Control-Allow-Origin' missing 【发布时间】:2016-12-21 15:54:28 【问题描述】:

也许这个问题似乎是重复的,但我有自己的场景,ASP.NET MVC 应用程序,当我点击签出时它会引发以下错误。

跨域请求被阻止:同源策略不允许读取 远程资源在 http://servicelink?order=%5Bobject%20Object%5D。 (原因:CORS 标头“Access-Control-Allow-Origin”缺失)。

【问题讨论】:

您需要将 CORS 标头添加到您的 ASP 代码生成的响应中。 @RoryMcCrossan 我已经浏览了几篇文章,但我不明白,如何添加以及在哪里添加这些标题 ***.com/questions/27218240/cors-in-asp-net-mvc5 我无法访问网络服务 没有。出于安全原因,跨域请求被阻止,除非接收域通过 CORS 标头明确允许。由于你调用的域没有这些headers,所以你不能通过JS代码调用它 【参考方案1】:

您将无法从 javascript 访问此服务,因为您在域 aaa.com 上,而您尝试访问的服务在域 bbb.com 上.这是由浏览器实现的安全功能Same Origin Policy.

指定<add name="Access-Control-Allow-Origin" value="*"/> 或从您这边启用CORS 不会完成任何事情。您需要联系Telemo 解决方案并询问他们 以允许来自您的服务器\域的请求通过javascript 调用他们的服务。这当然不太可能发生,除非他们是您的业务合作伙伴或者您与他们达成某种协议,因此您可能需要做的是从 C# 代码中调用他们的服务方法。

您可以更改您的 javascript 以在您的代码后面调用服务器端操作\web 方法,并在后面的代码中编写 C# 代码来调用 Telemo 解决方案方法:

【讨论】:

也显示在上面的检查元素图片中附有问题

以上是关于跨域请求被阻止:& 原因:缺少 CORS 标头“Access-Control-Allow-Origin”的主要内容,如果未能解决你的问题,请参考以下文章

js ajax跨域被阻止 CORS 头缺少 'Access-Control-Allow-Origin'(转)

跨域请求被阻止:同源策略不允许读取远程资源,CORS 标头中缺少令牌“缓存控制”

跨域请求被阻止原因:CORS 预检通道未成功

跨域请求被阻止 Symfony/AngularJS

跨域请求被阻止:CORS 标头“Access-Control-Allow-Origin”缺失

原因:缺少 CORS 标头“Access-Control-Allow-Origin”