javascript – 预检的响应具有无效的HTTP状态代码405
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 预检的响应具有无效的HTTP状态代码405,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2117字,纯文字阅读大概需要4分钟。
内容图文
我在StackOverflow中已经阅读了很多类似的问题,但这些解决方案并不适用于我.
我有WCF REST服务:
[<OperationContract>]
[<WebInvoke(UriTemplate = "PostItem",
RequestFormat= WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json, Method = "POST")>]
我可以使用Postman(Chrome扩展程序)使用它.我将数据传递为’raw’,而不是’urlencoded’.我得到200返回代码.
我需要使用angularjs调用此方法:
$http.post('http://192.168.1.65/Service1.svc/restapi/PostItem',
{
"Address": "г. Москва, ул. Соколово-Мещерская, д.25",
...
"User": ""
})
我刚从Postman复制了URL和JSON.但我得到错误:
angular.js:10722 OPTIONS
07001
07001. Response for
preflight has invalid HTTP status code 405
我搜索过类似的问题并找到了两个解决方案:
>使用jQuery设置标题Content-Type’:’application / x-www-form-urlencoded; charset = UTF-8′,但它不适用于我的WCF服务
>在我的Web.Config中设置自定义标题:
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
</customHeaders>
</httpProtocol>
它对我没有帮助.而且我不确定服务器端出错的原因. Postman扩展可以成功调用此方法.
如何使用AngularJS进行相同的POST调用?
更新:
这是OPTIONS请求:
“审核和响应”选项卡为空
更新2:
一切都在IE中正常工作,但在Chrome中不起作用.
解决方法:
即使是封闭的问题,我想展示一下对我有用的东西.
首先,您必须在web.config上启用CORS(如Mihai sad):
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
</customHeaders>
</httpProtocol>
如果您有一些额外的HEADER参数,则必须将其添加到Access-Control-Allow-Headers,例如:
<add name="Access-Control-Allow-Headers" value="Content-Type, X-Your-Extra-Header-Key" />
最后,要处理OPTIONS请求,您必须回复空响应,在您的应用程序类中添加:
protected void Application_BeginRequest()
{
if (Request.Headers.AllKeys.Contains("Origin") && Request.HttpMethod == "OPTIONS")
{
Response.Flush();
}
}
内容总结
以上是互联网集市为您收集整理的javascript – 预检的响应具有无效的HTTP状态代码405全部内容,希望文章能够帮你解决javascript – 预检的响应具有无效的HTTP状态代码405所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。