jQuery Ajax返回404错误,但正确的响应

前端之家收集整理的这篇文章主要介绍了jQuery Ajax返回404错误,但正确的响应前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我通过jQuery AJAX发布一些数据到PHP脚本,一切执行正确,但它返回一个404错误。在我的Firebug控制台中,PHP脚本的响应是正确的。我不明白脚本如何响应,它仍然引发404错误。 jQuery“错误”回调方法触发器,而“成功”方法不会。

PHP脚本执行的所有语句都准确地工作,因为我可以看到正在更新的数据库等。

我使用jQuery 1.4.2,在由Dreamhost托管的wordpress 3.x网站。

– – – – – -更多信息 – – – – – –

OK,我已经知道,当我包括wordpress的wp-blog-header.PHP文件在Ajax脚本,我得到的错误。此外,一次一次这些脚本工作,我90%肯定他们在WP 3.0更新后停止工作。我将粘贴在Firebug的响应头中。

这个标题响应从PHP包括wp-blog-header.PHP并返回一个404错误在Firebug …

Date                Tue,10 Aug 2010 01:44:44 GMT
Server            Apache
X-Powered-By        PHP/5.2.6
X-Pingback        http://www.learnwake.com/xmlrpc.PHP
Expires          Wed,11 Jan 1984 05:00:00 GMT
Cache-Control       no-cache,must-revalidate,max-age=0
Pragma            no-cache
Last-Modified       Tue,10 Aug 2010 01:44:44 GMT
Vary                Accept-Encoding
Content-Encoding    gzip
Content-Length    36
Keep-Alive        timeout=2,max=98
Connection        Keep-Alive
Content-Type        text/html; charset=UTF-8

来自PHP的此标头响应不包括wp-blog-header.PHP并在Firebug中返回200 OK …

Date                Tue,10 Aug 2010 01:44:58 GMT
Server            Apache
X-Powered-By        PHP/5.2.6
Vary                Accept-Encoding
Content-Encoding    gzip
Content-Length    36
Keep-Alive        timeout=2,max=100
Connection        Keep-Alive
Content-Type        text/html

解决方法

当你包括wp-blog-header.PHP时,你最终会引导整个wordpress安装程序。调用函数wp(),它调用$ wp-> main(),然后调用各种设置函数

其中之一是$ wp-> query_posts(),它调用$ wp_the_query-> query(),它又调用WP_Query的parse_query()函数。我怀疑404指示是在那里生成的(你的AJAX页面不是一个WP帖子或任何类似的东西),然后通过$ wp-> handle_404()转换为实际的404响应头,函数调用后的query_posts()在main()。

我不是100%确定parse_query()是确定的罪魁祸首,但我建议看看,如果你可以只包括wp-load.PHP而不是,因为我相信它做实际的工作,创建你想访问的对象。

再次,我实际上不使用wordpress,所以我不能确定,但​​看着源代码这似乎是最可能的情况,从我可以告诉。

猜你在找的jQuery相关文章