【问题标题】:404 returned in CORS request for some web api calls from angular service404 在 CORS 请求中返回,来自 Angular 服务的一些 Web api 调用
【发布时间】:2014-10-19 08:29:35
【问题描述】:

我有一个从 ASP.Net Web api 服务检索数据的 Angular 应用程序。

Web api 托管在不同的域中。

web api 包含多个 URL 来查询不同类型的数据,例如site2/api/Employeessite2/api/Managers 等。

Web api 像往常一样具有全局配置,即没有为任何特定控制器进行特殊配置。

我在 angularjs 中创建了不同的控制器,每个控制器都有一个服务(复制粘贴的代码,但我已经正确检查并更新了所有必要的引用)。

当我在 site1 中从我的 Angular 代码访问 site2/api/Employees 时,会从 web api 服务返回数据。

但是,当我从我的角度代码访问 /site2/api/Managers 时,我收到一个错误 OPTIONS:/site2/api/Managers 404 not found XMLHttpRequest 无法加载 /site2/api/Managers 无效状态码 404

有人可以为这个问题提供解决方案

【问题讨论】:

  • 听起来您的问题出在后端。当您通过 Postman(或者如果您使用的是 Firefox,则为 Poster)执行相同的请求时会发生什么?

标签: angularjs asp.net-web-api cors


【解决方案1】:

我不是 angularjs 用户,但我可以在 cors 中为您提供帮助

当浏览器允许跨域请求时,cors 请求有效。

一种方法是允许 Cors 请求是通过客户端浏览器

  • (jquery) jQuery.support.cors = true 如果满足以下条件,此行将很有帮助 你只针对 IE
  • 要在其他浏览器中启用,您可以查看this javscript

另一种方法是将 HTTP 响应标头设置为从服务器端对 Cors 的所有访问

下面是我通过 HTTP 响应标头访问 Cors 的所有 php 代码

<?php

header('Access-Control-Allow-Origin:  http://yourdomain.com');
header('Access-Control-Allow-Methods: POST, GET, OPTIONS, PUT, DELETE');
header('Access-Control-Allow-Headers', 'Content-Type'); 

我希望这可以帮助你..

【讨论】:

    猜你喜欢
    • 2019-12-12
    • 1970-01-01
    • 2020-03-09
    • 1970-01-01
    • 2018-05-01
    • 2018-06-24
    • 2013-04-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多