wordpress 如何使 AJAX 在子域上工作

axzmvihb  于 2023-01-25  发布在  WordPress
关注(0)|答案(3)|浏览(164)

我有一个插件在我的wordpress网站,这个插件是使用ajax发送信息到数据库
问题是我的网站"www.example.com"上的一些页面上有子域xxx.xyn.com "
ajax在主域名www.example.com上运行良好,但在子域上不运行,那么我如何使它在子域上也运行呢?xyn.com but it's not working on subdomains so how can i make it work on subdomains too ?
下面是代码:

http_req = new XMLHttpRequest();
http_req.onreadystatechange = function() 
{eemail_submitresult(es_widget_form)};  // Passing the form to the submit request
http_req.open('POST', url, true);
http_req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http_req.send(parameters);

那我该怎么做呢?
如果访问控制允许来源是解决方案,你能告诉我如何允许它吗?
是要添加javascript,php,htaccess或apache的代码吗?

bpzcxfmw

bpzcxfmw1#

我不知道你的意思,你正在访问一个页面的url xxx.xyn.com,它从xyn.com获取XHR数据,对吗?
在这种情况下,您需要在xyn.com的响应中添加Access-Control-Allow-Origin标头。有关详细信息,请参阅上面的链接。

tkclm6bt

tkclm6bt2#

它不应该发送请求到主站点,因为它在当前站点上下文中工作。你检查了“url”变量中的内容吗?可能有一个主站点url?

carvr3hs

carvr3hs3#

我用这个方法解决了我的问题,并将以下代码添加到.htaccess中。我希望所有子域都能访问。

<ifmodule mod_headers.c="">
   SetEnvIf Origin "^(.*\.domain\.com)$" ORIGIN_SUB_DOMAIN=$1
   Header set Access-Control-Allow-Origin "%{ORIGIN_SUB_DOMAIN}e" env=ORIGIN_SUB_DOMAIN
   Header set Access-Control-Allow-Methods: "*"
   Header set Access-Control-Allow-Headers: "Origin, X-Requested-With, Content-Type, Accept, Authorization"
</ifmodule>

相关问题