我在Wordpress上使用Woocommerce设置了一个小商店。我自己在nginx上的VPS。
一切都运行正常,但几天前,Ajax没有在结帐页面上工作。
我尝试了一切可能的方式支持https://example.com/?wc-ajax=get_refreshed_fragments loadingspinner-on-checkout-page /
Chrome 控制台说:
here无法加载 资源:服务器响应状态为405(不允许)
所以我发现当我加载此true
时,它会转到主页并且不会加载ajax。当我加载下面给出的完整URL时,它加载得很好。
https://example.com/?wc-ajax=get_refreshed_fragments
以下是相关网站的阻止文件:
https://example.com/index.php?wc-ajax=get_refreshed_fragments
https://example.com/checkout/?wc-ajax=get_refreshed_fragments
我希望woocommerce使用完整路径调用server {
listen 80;
server_name example.com www.example.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl spdy;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
server_name example.com www.example.com;
root /home/user/example.com/public/;
index index.php;
access_log /home/user/example.com/logs/access.log;
error_log /home/user/example.com/logs/error.log;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ /.well-known {
allow all;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass 127.0.0.1:9000;
# With php5-fpm: fastcgi_pass
#unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
。任何关于nginx配置或任何php / ajax解决方法的想法或建议都会有所帮助。
答案 0 :(得分:0)
尝试删除
try_files $uri =404;
在php位置。
并逐个禁用所有插件。
你在混合www.example.com和example.com吗?