首页 新闻 会员 周边 捐助

js调用跨域get请求调用webApi 多出个options请求是为什么?

0
悬赏园豆:15 [已关闭问题] 关闭于 2013-09-10 14:18

js跨域请求asp.net mvc webApi, 在web.config 向下面配置可以成功就行访问,

<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE,OPTIONS" />
</customHeaders>
</httpProtocol>

因为要想请求头多放个参数AuthKey  用jquery的 $.ajax()设置

所以上网找了找,必须要再在web.config里多设置条

 <add name="Access-Control-Allow-Headers" value="AuthKey" />

参数是可以传递了 但总会多个options请求 如下图 而且总请求是失败

 

后来又发现我的asp.net mvc webApi 只接受get 和post请求 对于delete PUT 也会出现 405(Method not Allowed) 的问题

 

所以我想问:

1,为什么会多个options请求?

2,为什么会出现405(Method not Allowed)?

koi的主页 koi | 初学一级 | 园豆:4
提问于:2013-09-04 11:02
< >
分享
所有回答(1)
0

预请求  为OPTIONS请求,一般由于跨域问题 或自定义httpheaders引起

性能疯子 | 园豆:206 (菜鸟二级) | 2016-02-14 15:58

我的加了还是不起作用

支持(0) 反对(0) 江宁织造 | 园豆:73 (初学一级) | 2016-06-02 18:51

@江宁织造: 这已经不是跨域问题了 属于 预请求验证。要单独处理options请求 返回 200~299之间的状态码

支持(0) 反对(0) 性能疯子 | 园豆:206 (菜鸟二级) | 2016-06-02 19:03
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册