我在遠程服務器中託管的Laravel 5.1中創建了REST api。現在,我試圖從另一個網站(我在本地)使用該API。對預檢請求的響應沒有通過訪問控制檢查Laravel和Ajax調用
在Laravel中,我設置了發送CORS頭文件所需的行。我還使用郵差測試了API,一切似乎都沒問題!
在前端
然後,在網站上我當時是使用AJAX POST請求,使用此代碼:
var url="http://xxx.xxx.xxx.xxx/apiLocation";
var data=$("#my-form").serialize();
$.ajax({
type: "POST",
url: url,
data: data,
headers: { 'token': 'someAPItoken that I need to send'},
success: function(data) {
console.log(data);
},
dataType: "json",
});
購買,然後我在控制檯收到此錯誤:
XMLHttpRequest無法加載http://xxx.xxx.xxx.xxx/apiLocation。 對預檢請求的響應未通過訪問控制檢查:否 請求的 資源上存在「訪問控制 - 允許來源」標頭。因此不允許訪問原產地'http://localhost'。
在後端
在我設置的API(使用Laravel中間件設置頭):
return $next($request)
->header('Access-Control-Allow-Origin', '*')
->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
所以,我感到困惑的地方是完全問題。
- 在服務器中?但爲什麼郵差工作正常?
- 是否在Ajax調用中?那麼,我應該添加什麼?