我正在尝试使用Ajax从我的网站复制一些内容,但是我的cors标头出现问题。
我有一个带有子域的WordPress-Multisite网站,而ajax调用介于这些子域之间。如果在同一个子域上进行调用,则可以正常工作,但在不同子域之间则不能正常工作。在我的研究中,我在htaccess中添加了以下内容(顶部):
RewriteEngine On
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>
还请注意:我有一个Linux共享服务器,并且我的主机确认我的mod_headers已启用。调用是在后端进行的,但是无论如何应该加载htaccess吗?
您可以在下面看到我的Ajax呼叫:
$.ajax({
url: window.location.protocol + '//' + window.location.hostname.replace('en.|de.', '') + '/' + admin_slug + '/network/',
type: 'GET',
success: function(res) {
var data = $.parseHTML(res); //<----try with $.parseHTML().
$(data).find( '#menu-settings' ).find( 'ul' ).each(function(){
$( 'ul.overview_settings-list' ).append($(this).html());
});
}
});
但仍然出现此错误:
Access to XMLHttpRequest at 'https://domain.co/dashboard/network/' (redirected from 'https://de.domain.co/dashboard/network') from origin 'https://de.domain.co' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: Redirect is not allowed for a preflight request.
load-scripts.php?c=1&load[]=jquery-core,jquery-migrate,utils&ver=5.2.2:4 GET https://domain.co/dashboard/network/ net::ERR_FAILED
编辑这对我也不起作用:
RewriteEngine On
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Headers "Content-Type"
Header set Access-Control-Allow-Methods "GET"
</IfModule>