Ajax 发布请求,.aspx页面的授权标头给出错误"Option 405 (Method Not Allowed) "



我有aspx页面,我从哪里发送jquery ajax post请求到我的web服务。我在post call中添加了Authorization报头。我的代码是:-

 $.ajax({
        type: "POST",
        beforeSend: function (xhr) {
              xhr.setRequestHeader("Authorization", "Bearer " + accessToken);
        },
        url: " My Web Service URL ",
        contentType: "application/json; charset=utf-8",
        data: { HtmlText: data},
        datatype: 'json',
        success: function (data) {
             alert(JSON.stringify(data));
        }
    });

Web。我添加了:-

 <system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules runAllManagedModulesForAllRequests="true">
  <remove name="WebDAVModule" />
</modules>
<httpProtocol>
  <customHeaders>
    <add name="Access-Control-Allow-Origin" value="*" />
    <add name="Access-Control-Request-Headers" value="Authorization, Content-Type"/>
    <add name="Access-Control-Allow-Headers" value="Authorization" />
    <add name="Access-Control-Allow-Methods" value="POST, GET, OPTIONS" />
  </customHeaders>
</httpProtocol>
<handlers>
  <remove name="WebDAV" />
  <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
  <remove name="OPTIONSVerbHandler" />
  <remove name="TRACEVerbHandler" />
  <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
<directoryBrowse enabled="true" />

发送请求后,我在检查元素(Chrome)中得到响应:-

Remote Address: " My Remote Address "请求URL:"我的主机URL"请求方法:选择状态码:405方法不允许

Request Headers view source:-

接受:/接受编码:gzip,缩小,sdch接收语言:en - us, en; q = 0.8, es; q = 0.6, fr; q = 0.4,嗨;q = 0.2Access-Control-Request-Headers:accept, authorization, content-typeAccess-Control-Request-Method:文章连接:维生主持人:"我的主机URL"产地:测试推荐人:/测试/MyPage.aspx用户代理:Mozilla/5.0 (Windows NT 6.1;WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36

Response Headers view source:-

Access-Control-Allow-Headers:Origin, X-Requested-With, Content-Type, Accept方法:获取,发布,放置,删除,选项Access-Control-Allow-Origin: *允许:文章cache - control: no - cache内容长度:76内容类型:application/json;utf - 8字符集=日期:2014年7月8日星期二12:42:10 GMT有效期:1编译指示:no - cache服务器:microsoft iis/7.5X-AspNet-Version: 4.0.30319

在MVC 5 Web Api中,我首先在Web中添加了customHeader。跨域配置文件,但没有得到预期的输出。所以我添加了[EnableCors("","","*")]到控制器中的每个方法,我得到了所需的输出。奇怪! !但是得到了输出。

相关内容

最新更新