我已經嘗試了很多次,以獲得這項工作,但似乎無法達到目的。CORS請求與jQuery Ajax和PHP
當我第一次實現這個功能時,它完美地處理了一些請求,然後無處可逃。它停止工作。
下面是從油脂/篡改猴腳本我的代碼運行:
$.ajax({
url: 'ServerLinkHere',
crossDomain: true,
data: {
artist: artist,
track: title,
link: data.url
},
type: 'POST',
success: function (resp) {
console.log(resp.responseText);
}
});
這裏是我的服務器端腳本(在不同的線程由於從用戶加尼甚服用):
// Allow from any origin
if (isset($_SERVER['HTTP_ORIGIN'])) {
header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");
header('Access-Control-Allow-Credentials: true');
header('Access-Control-Max-Age: 86400'); // cache for 1 day
}
// Access-Control headers are received during OPTIONS requests
if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))
header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))
header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");
exit(0);
}
後,代碼,我做我的計算:下載一個文件,然後返回到文件下載的鏈接作爲正文。
目前,似乎計算正在運行,因爲文件確實出現在文件系統上。
但是,當它返回一個鏈接時,chrome瀏覽器仍會拋出訪問控制錯誤。這裏有一個調試畫面(想不出直接連接,沒有代表):
不過,我也迷上了代理CharlesProxy調試器和調試器顯示一切是一種好的。這裏的響應的畫面:
難道這是一個預檢問題?沒有OPTIONS
發送給我。
你的答案就在這裏:http://stackoverflow.com/問題/ 20442628/cors-jquery-ajax-request – pid
我已經正確設置了標題。它仍然不起作用。爲了給您帶來疑義,我重新創建了相同的請求/響應解決方案,並且仍然返回了相同的錯誤。 –
控制檯說什麼? – hex494D49