404 在 CORS 请求中返回,来自 Angular 服务的一些 Web api 调用
Posted
技术标签:
【中文标题】404 在 CORS 请求中返回,来自 Angular 服务的一些 Web api 调用【英文标题】:404 returned in CORS request for some web api calls from angular service 【发布时间】:2014-10-19 08:29:35 【问题描述】:我有一个从 ASP.Net Web api 服务检索数据的 Angular 应用程序。
Web api 托管在不同的域中。
web api 包含多个 URL 来查询不同类型的数据,例如site2/api/Employees
、site2/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)执行相同的请求时会发生什么? 【参考方案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');
我希望这可以帮助你..
【讨论】:
以上是关于404 在 CORS 请求中返回,来自 Angular 服务的一些 Web api 调用的主要内容,如果未能解决你的问题,请参考以下文章
为啥在 webflux 中使用 WebFilter corsFilter 时请求返回 404 状态?
Yii 和 Vue2 CORS 启用。服务器以 404 错误响应预检 OPTIONS 请求
Tomcat 启用 CORS:来自 Safari 的 POST 请求返回 200,Chrome 和 Firefox 返回 403