无法解析 $http.put();访问控制允许源
Can't resolve $http.put(); Access-control-allow-origin
我试图使用在MVC 4 .net WEB API中开发的休息服务。我对$http.get()和$http.get(param)没有任何问题。当我尝试$http.put()时,我收到一个错误。好吧,我撒谎了。当我开始使用这个简单的项目时,我在使用 get 方法时遇到了同样的问题,我以这种方式管理它们:
using System;
using System.Web.Http.Filters;
public class AllowCrossSiteJsonAttribute : ActionFilterAttribute
{
public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
{
if (actionExecutedContext.Response != null)
actionExecutedContext.Response.Headers.Add("Access-Control-Allow-Origin", "*");
base.OnActionExecuted(actionExecutedContext);
}
}
现在似乎不起作用。这是 angularjs 控制台显示的错误:
https://i.stack.imgur.com/LEgwh.jpg
(我还不能放图片,所以我放了一个链接)
我应该怎么做才能使用看跌期权方法?
您是否在 web.config 文件中启用了 PUT?在开发过程中,我的看起来像这样。
<system.webServer>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Methods" value="GET,PUT,POST,DELETE" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />
</customHeaders>
<handlers>
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%'Microsoft.NET'Framework'v4.0.30319'aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%'Microsoft.NET'Framework64'v4.0.30319'aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
</system.webServer>
此外,为了使用 Web API 启用 PUT 和 DELETE 动词,您需要编辑 applicationhost.config 文件,该文件位于 %userprofile%''documents''iisexpress''config''applicationhost.config,您需要将谓词添加到 ExtensionlessUrl 处理程序中,以便可以使用它们:
<add name="ExtensionlessUrl-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
相关文章:
- Javascript 受客户端和访问控制允许源的限制
- Azure Blob 存储 请求的资源错误中不存在访问控制允许源标头
- Socket.io 请求的资源上不存在“访问控制允许源”标头.因此,不允许访问源“http://localhost”
- Android 4.1 上的访问控制允许源错误
- 跨源资源错误:请求的资源上不存在“访问控制允许源”标头
- 访问控制允许源错误
- 意外的访问控制允许源错误
- CORS 标头“访问控制允许源”丢失,但它存在于标头中
- 访问控制允许源不允许 AJAX 源空
- 交叉请求时出错:“访问控制允许源不允许源”
- 将所有域添加到 CORS(访问控制允许源:*)的安全隐患
- Foursquare 返回“无访问控制允许源”标头显示错误
- 是来自浏览器或 XmlHttpRequest 的“没有'访问控制-允许源'标头”错误消息
- 旧系统的 CORS 问题 - 没有“访问控制允许源”标头
- AJAX 请求收到“请求的资源上不存在'访问控制-允许源'标头”错误
- 执行预检请求时是否需要访问控制允许源 CORS 标头
- ajax jonp 不应该适用于 请求的上不存在“访问控制-允许源”标头
- 为什么如果此 API 给出“无访问控制允许源标头”,我可以通过地址栏或 http://www.hurl.it 访问它
- 在某些情况下没有“访问控制-允许源”标头错误,但在其他情况下则没有
- 无法在使用 CORS 和 Mandrill 的 Node Express 中找出“没有'访问控制-允许源'