2016-05-23 84 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

謝謝你的回答! –

相關問題