小编典典

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

ajax

我通过jQuery
AJAX将一些数据发布到PHP脚本中,并且一切正常执行,但是返回了404错误。在我的Firebug控制台中,PHP脚本的响应是正确的。我不了解该脚本如何响应,它仍然会引发404错误。jQuery的“错误”回调方法将触发,而“成功”方法则不会触发。

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

来自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

阅读 240

收藏
2020-07-26

共1个答案

小编典典

当包含时wp-blog- header.php,最终将引导整个WordPress安装程序。该函数wp()被调用,该函数调用$wp->main(),后者又调用各种设置函数。

其中之一是$wp->query_posts(),它调用$wp_the_query->query(),而后者又调用WP_Queryparse_query()功能。我
怀疑 在其中生成了404指示(您的AJAX页面不是WP帖子,或类似的东西),后来通过$wp->handle_404()在after
query_posts()中调用的函数转换为实际的404响应头main()

我不是100%肯定parse_query()是罪魁祸首,但是我建议您看看是否可以只包含wp- load.php它,因为我相信它确实可以创建要访问的对象。

再说一次,我实际上并没有使用WordPress,所以不能确定,但​​是据我所知,从源代码来看,这似乎是最有可能的情况。

2020-07-26