Wordpress admin-ajax.php可在localhost上运行,但不能在服务器上运行

时间:2019-04-18 17:05:46

标签: ajax wordpress

我正在使用ajax来过滤WordPress中的自定义帖子类型。在我的本地主机(xampp)上,一切正常且运行良好,过滤并显示适当的帖子。

到目前为止,我已经重建了整个站点,以验证我的核心文件是否完好无损。我检查了数据库,以确保正确设置了wp-options home和sit url。我已经在http和https中进行了尝试,并且重新保存了永久链接。

我还联系了我的托管服务提供商(inMotion),以确认我不需要做任何操作就可以在WordPress上启用Ajax。我还在同一服务器上运行了另一个站点,该站点没有问题地使用了ajax。

从本质上讲,可能是导致“ $ home_url / wp-admin / admin-ajax.php?grade-filter =&department-filter = +&search =&action = coursefilter”的原因

抛出GET 400错误?

1 个答案:

答案 0 :(得分:0)

可能有两个原因,但最常见的原因是未设置漂亮的永久链接。

转到Settings > Permalinks并启用漂亮的永久链接结构并点击保存。之后,确保存在带有以下代码的.htaccess文件:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

如果您正在运行Nginx Web服务器,请为域启用Wordpress2模式,然后将其添加到您的.conf文件中:

location / {
            try_files $uri $uri/ /index.php?$args; 
}

在WordPress官方文档中了解更多信息:https://codex.wordpress.org/Using_Permalinks

[已更新]

  

根据您提供的信息,我可以假设只有   已更改,因为迁移是home_url / 和服务器端软件,例如 Web服务器 PHP

我建议您仔细检查这些差异,用新的域URL替换旧的URL,并确保没有该URL的插件或其他脚本重新路由请求。