[英]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.