Mik*_*Lin 31 ajax wordpress jquery
我通过jQuery AJAX将一些数据发布到PHP脚本,一切都正确执行,但它返回404错误.在我的Firebug控制台中,PHP脚本的响应是正确的.我不明白脚本如何响应,它仍然抛出404错误.jQuery"error"回调方法触发,而"success"方法则不触发.
PHP脚本执行的所有语句都能正常工作,因为我可以看到数据库正在更新等.
我在Dreamhost托管的WordPress 3.x网站上使用jQuery 1.4.2.
- - - - - -更多信息 - - - - - -
好的,我已经发现当我wp-blog-header.php在Ajax脚本中包含WordPress的文件时,我得到了错误.此外,曾几何时这些脚本工作,我90%肯定他们在WP 3.0更新后停止工作.我将粘贴Firebug的Response头.
这个来自PHP的头文件响应包括wp-blog-header.php并在Firebug中返回404错误...
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
Run Code Online (Sandbox Code Playgroud)
来自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
Run Code Online (Sandbox Code Playgroud)
Tim*_*one 47
当你包含时wp-blog-header.php,你最终会引导整个WordPress安装程序.wp()调用该函数,调用该函数,该函数$wp->main()又调用各种设置函数.
其中之一是$wp->query_posts(),它调用$wp_the_query->query(),这反过来又调用WP_Query的parse_query()函数.我怀疑的是,404指示在那里产生(你的AJAX页面不是WP后,或类似的东西),并随后转化成实际的404响应头$wp->handle_404(),后调用的函数query_posts()中main().
我不是百分之百确定这parse_query()是明确的罪魁祸首,但我建议你看看你是否可以只包括wp-load.php,因为我相信它能够创建你想要访问的对象的实际工作.
同样,我实际上并没有使用WordPress,所以我不能确定,但从源代码看,这似乎是最可能的情况,从我所知道的.