Ajax没有在Nginx / Wordpress上工作

时间:2010-08-06 09:01:56

标签: ajax wordpress nginx

嗨,

我在nginx上运行wordpress 3x并且所有的ajax调用都被破坏了。完全相同的wordpress在Apache上运行良好。

我通过从所有jquery.post()调用中删除'index.php',以某种方式修复了ajax调用以使用nginx,但是我无法以相同的方式修复其他调用。

基本上这些变化是: 对于nginx这一行:

jQuery.post( 'index.php?ajax=true', form_values, function(returned_data) {

替换为:

jQuery.post( '?ajax=true', form_values, function(returned_data) {

我怀疑问题在于具有重写规则的nginx配置文件。你有我的配置

if (!-e $request_filename) {
rewrite ^.+/?(/wp-.*) $1 last;
rewrite ^.+/?(/.*\.php)$ $1 last;
rewrite ^(.+)$ /index.php?q=$1 last;
}


location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /xxx/public$fastcgi_script_name;
include fastcgi_params;
}
}

1 个答案:

答案 0 :(得分:1)

可能是您在浏览器URL中的目录或“虚拟”目录中吗?

例如,如果你在www.myblog.com这应该有效,但是在www.myblog.com/my-category/my-post/上它可能不会。

您是否从Apache网站和Nginx网站上完全相同的URL位置完成了测试?

您是否尝试过路径前面的斜杠以确保它是被调用的根脚本?

jQuery.post( '/index.php?ajax=true', form_values, function(returned_data) {