2016-05-23 52 views
4

我已经阅读了StackOverflow中的许多类似问题,但这些解决方案对我无效。 我可以使用邮递员(Chrome扩展)使用它。我将数据作为“标题”传递。我得到200个返回码。XMLHttpRequest无法加载。预检的响应具有无效的HTTP状态代码405

enter image description here

我需要调用使用AJAX Jquery的这种方法:

$.ajax(apiUri, { 
    beforeSend: function (xhr, settings) { 
     xhr.setRequestHeader('Authorization', 'Bearer ' + $('#AccessToken').val()); 
    }, 
    dataType: 'text', 
    cache: false, 
    success: function (data) { 
     console.log(data); 
     $('#output').text(data); 
    } 
}); 

但在这种情况下,我得到了一个错误。

console error using jquery/Ajax

在资源服务器端我在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> 
+0

我发现解决方案相同。 –

回答

14

我只是把在全球设置

protected void Application_BeginRequest() 
    { 
     if (Request.Headers.AllKeys.Contains("Origin") && Request.HttpMethod == "OPTIONS") 
     { 
      Response.Flush(); 
     } 
    } 

并没有在web.config中的一些变化(system.webserver)设置

<httpProtocol> 
    <customHeaders> 
    <add name="Access-Control-Allow-Origin" value="*" /> 
    <add name="Access-Control-Allow-Headers" value="Origin, X-Requested-With, Content-Type, Accept,Authorization" /> 
    <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" /> 
    </customHeaders> 
</httpProtocol> 

然后工作正常:)

谢谢

+0

这解决了我的错误,但现在又出现了另一个错误。服务器在发送HTTP头之后无法修改cookie。首先,抛出此错误,然后请求成功完成并返回数据。 –

+0

谢谢你的回答! –

相关问题