我试图制作跨域ajax请求我已经在接收端设置了PHP标头并设置了jQuery AJAX请求但是由于某种原因它可以工作然后你刷新页面它会触发cors origin错误响应代码为503,我的研究由CORS引起。
我已经按照How do I send a cross-domain POST request via JavaScript?
的说明进行了操作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);
}
});

答案 0 :(得分:1)
事实证明,有些Plesk安装有点错误,503错误来自proxy_fcgi apache进程。
要临时修复此错误,您需要在plesk中设置应用程序以使用FastCGI而不是Apache / Nginx提供的FPM。
答案 1 :(得分:0)
我曾经遇到过这个问题而且我解决了这个问题,我在我试图访问的目标网站上创建了一个.htaccess
文件。
<IfModule mod_headers.c>
SetEnvIf Origin "http(s)?://(www\.)?(mydomain)$" AccessControlAllowOrigin=$0$1
Header add Access-Control-Allow-Origin *
</IfModule>
如果请求的域中包含mydomain
,那么它将成为IF条件,然后它将允许您访问。
答案 2 :(得分:0)
CORS策略还应指定您可以发送的标头。
503有点奇怪。我认为你需要在允许的标题列表中设置Content-Type
,也许还有其他标题。根据MDN,这些:https://developer.mozilla.org/en-US/docs/Glossary/simple_header是您不需要显式发送的标头
header('Access-Control-Allow-Headers: Content-Type, etc');