2017-09-11 199 views
2

這幾乎是一個已知的標準錯誤,但無法使用現有的Stackoverflow帖子修復相同的問題。無法解決訪問控制問題

的XMLHttpRequest不能加載https://myserver.com/context/
響應預檢請求未通過訪問控制檢查:
否「訪問控制允許來源」標題存在於所請求的資源 。
原因'https://www.otherwebsite.com'因此不允許訪問。
響應了HTTP狀態代碼405

以下是代碼我有 -

function setHeader(xhr) { 
    xhr.setRequestHeader("Access-Control-Allow-Origin", "*"); 
} 

var url = "https://myserver.com/context/"; 
$.ajax({ 
    url: url, 
    type: 'GET', dataType:'json', 
    success: function(data) { 
     _this.question(data.question); 
     _this.questionId(data.questionId); 
     _this.choices(data.choices); 
    }, error: function() { 
     console.log("ERROR in getting microquestion"); 
    }, 
    beforeSend: setHeader 
}); 
+1

閱讀錯誤消息:「_No'Access-Control-Allow-Origin'頭部存在__on所請求的資源__._」 – Teemu

+1

*「對預檢請求的響應...具有HTTP狀態碼405」*表示要啓動,即使您已經配置了將正確的CORS頭髮送回「正常」請求,也需要將「https:// myserver.com/context /」端點配置爲正確處理OPTIONS請求。有關詳細信息,請參閱https://stackoverflow.com/questions/43871637/no-access-control-allow-origin-header-is-present-on-the-requested-resource-whe/43881141#43881141但其要點是,最低限度地,服務器必須以2xx成功狀態代碼迴應OPTIONS請求 – sideshowbarker

+0

我剛剛意識到什麼錯誤正試圖指出。問題出在服務器端。這就是「請求資源」的含義。感謝@sideshowbarker明確指出。 Upvoting你們倆 – comiventor

回答

1

「迴應預檢要求......有HTTP狀態碼405」消息表明,到開始時,需要將https://myserver.com/context/端點配置爲正確處理OPTIONS請求 - 即使它已經被設置爲將正確的CORS頭髮送回「正常」請求。

對於一些細節,你可以閱讀No 'Access-Control-Allow-Origin' header is present on the requested resource—when trying to get data from a REST API - 但它的要點答案是,微創,服務器必須向OPTIONS請求與2xx成功狀態碼。