簡體   English   中英

跨域 AJAX 請求失敗

[英]Cross domain AJAX request failing

我正在嘗試發出跨域 ajax 請求,我已經在接收端設置了 PHP 標頭並設置了 jQuery AJAX 請求,但由於某種原因它可以工作,然后您刷新頁面並觸發 cors 源錯誤,響應代碼為503,根據我的研究,它是由 CORS 引起的。

我遵循了這里的一些說明如何通過 JavaScript 發送跨域 POST 請求?

api.mydomain.co.uk 的標頭

header('Access-Control-Allow-Origin: https://mydomain.co.uk');
header('Access-Control-Allow-Credentials: true');
header('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS');

jQuery for mydomin.co.uk

 $.ajax({ type: 'POST', url: "//api.mydomain.co.uk/application/mp/basket", crossDomain: true, xhrFields:{withCredentials: true}, data: {Route: "ItemCount"}, success: function(data) { $('.count').text(data); } });

瀏覽器響應在此處輸入圖片說明

事實證明,一些 Plesk 安裝有點問題,503 錯誤來自 proxy_fcgi apache 進程。

要臨時修復此錯誤,您需要在 plesk 中設置您的應用程序以使用 FastCGI 而不是 Apache/Nginx 提供的 FPM。

我曾經遇到過這個問題,我通過這個解決了這個問題,我在我試圖訪問的目標網站中創建了一個.htaccess文件。

<IfModule mod_headers.c>
    SetEnvIf Origin "http(s)?://(www\.)?(mydomain)$" AccessControlAllowOrigin=$0$1
    Header add Access-Control-Allow-Origin *
</IfModule>

如果請求的域中有mydomain則它是一個 IF 條件,那么它將允許您訪問。

CORS 策略還應指定您可以發送哪些標頭。

503有點奇怪。 我認為您需要在允許的標題列表中設置Content-Type ,也許還有其他。 根據 MDN 這些:https ://developer.mozilla.org/en-US/docs/Glossary/simple_header是您不需要明確發送的標頭

header('Access-Control-Allow-Headers: Content-Type, etc');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM