【问题标题】:ASP.Net Web API SendAsync methods of DelegatingHandler called twice on POST requestDelegatingHandler 的 ASP.Net Web API SendAsync 方法在 POST 请求中调用了两次
【发布时间】: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/…

标签: asp.net asp.net-web-api


【解决方案1】:

这称为 CORS 飞行前请求。它是一种安全机制,允许服务器授予客户端执行跨域请求的权限。

【讨论】:

    猜你喜欢
    • 2017-06-11
    • 1970-01-01
    • 2020-07-06
    • 1970-01-01
    • 2012-02-23
    • 2016-05-12
    • 2019-09-04
    • 2016-06-23
    • 1970-01-01
    相关资源
    最近更新 更多