【发布时间】:2014-04-14 07:04:33
【问题描述】:
我在 web api 中有自定义授权处理程序,在调试 web api 时,我发现在发出 post 请求时,处理程序的 SendAsync 方法被调用了两次。当获取请求时,方法只执行一次。我还注意到 request.Headers.Authorization 第一次为空,第二次包含值。我还注意到,当我从 jquery ajax 发布请求中删除授权标头时,只调用一次方法。提琴手还将请求显示为 POST。但是当我添加标题时,第一个请求作为 OPTIONS /Product/Create HTTP/1.1 发送,第二个请求作为 POST /Product/Create HTTP/1.1 在提琴手中发送。有人知道为什么会这样吗?我正在提出跨域请求。
【问题讨论】:
-
在互联网上花了半天时间解决问题后终于得到答案,当您在跨域 ajax 请求中添加标头时,首先发出预检请求(选项),然后一切正常,然后实际请求完成(POST)。以下链接帮助我理解了 cors 请求:pixelsvsbytes.com/blog/2011/12/… 最后找到以下文章来处理委托处理程序中的 Preflight 请求:georgedurzi.com/…