Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用BuddyPress获得结果的AJAX 404_Ajax_Wordpress_Http Status Code 404_Buddypress - Fatal编程技术网

使用BuddyPress获得结果的AJAX 404

使用BuddyPress获得结果的AJAX 404,ajax,wordpress,http-status-code-404,buddypress,Ajax,Wordpress,Http Status Code 404,Buddypress,在我的开发机器上,一切正常。在实时服务器(Godaddy)上,来自BuddyPress的AJAX请求返回结果,并在FireBug中返回404错误。但脚本将结果视为失败,指标继续旋转 示例:在主页上,有一个最新的“活动”在memebers下流行,它使用AJAX以及组页面上的字母 我尝试过的事情:先仔细检查文件是否确实存在,然后检查权限以便能够读取。重新安装 你知道为什么它会返回404头和有效响应吗?我正在查看AJAX响应,它返回的不是纯HTML,而是一开始就有:0[[SPLIT]],最后是零。这可

在我的开发机器上,一切正常。在实时服务器(Godaddy)上,来自BuddyPress的AJAX请求返回结果,并在FireBug中返回404错误。但脚本将结果视为失败,指标继续旋转

示例:在主页上,有一个最新的“活动”在memebers下流行,它使用AJAX以及组页面上的字母

我尝试过的事情:先仔细检查文件是否确实存在,然后检查权限以便能够读取。重新安装


你知道为什么它会返回404头和有效响应吗?

我正在查看AJAX响应,它返回的不是纯HTML,而是一开始就有:0[[SPLIT]],最后是零。这可能与此有关吗?

请确保您已经为ajax fail(错误)添加了错误处理程序?试着先隐藏旋转指示器以查看效果的发生。

从您的评论来看,这似乎与GoDaddy有关。在您得到他们的支持之前,我会修改AJAX脚本以忽略该特定请求的404错误。

我不知道为什么它会返回404,但请尝试在执行操作()之前将这行代码添加到/wp content/plugins/buddypress/bp core/bp-core-AJAX-handler.php


我正在运行一个经过大量修改的BuddyPress 1.0 RC1版本,并在bp-custom.php中截取ajax帖子,但在我使用自己的逻辑之前,在自定义文件中设置状态头对我来说效果很好。

FWIW,我在GoDaddy.com上看到了作为WordPress插件一部分的JSON格式回复的完全相同的问题。JSON结果发送正确,但HTTP响应的状态代码为404

我确信这是他们的Apache头/配置的一个问题,我将尝试联系他们的技术支持团队(祝我好运),试图弄清这一点


如果我收到他们的回复,我会在这里发布。

我在使用AJAX玩Country city下拉菜单时遇到404响应错误,问题是

<select name="lm_country" id="lm_coutry" 
    onChange="getCity('getcities.php?country='+this.value)">

然后我给出了一个完整的url,如下所示-

<select name="lm_country" id="lm_coutry" 
    onChange="getCity('http://localhost/civic/includes/getcities.php?country='+this.value)">

我在GoDaddy上遇到了这个问题,这让我发疯,但我找到了解决办法。发送200状态码(标题(“HTTP/1.1200 OK”);)并没有为我摆脱404。我有一个mod_重写规则,它将一个标准URL路由到我的index.php,所以URL如下:

www.example.com/myroute/ajax_get_current
www.example.com/index.php/myroute/ajax_get_current
发送到我的应用程序的路径基本上如下所示:

www.example.com/myroute/ajax_get_current
www.example.com/index.php/myroute/ajax_get_current
相当标准的东西。问题是在文档根目录下创建了一个与路由同名的文件时引起的:

DOCROOT/myroute.php
然后我会得到一个与描述完全相同的结果——一个404错误,但是一个正确的响应。我确认,如果我将文件更改为“myroute_cron.php”,404将消失(正确的200),如果我将其更改回来,它将给出404


我不知道为什么会发生这种情况(特别是因为它显然是在执行适当的脚本以获得适当的响应),可能是多视图的情况。希望这能有所帮助。

不要黑客Buddypress core,它将在下一次更新时停止,您应该添加一个函数来拦截请求的操作:

我的问题是,在活动循环中的自定义组url中,“更多链接”在admin-ajax.php上得到404响应头错误。如果我检查响应内容,所有活动数据都在那里。所以我不确定是什么导致了这个问题

为了解决这个问题,我添加了一个函数,当ajax调用被触发时,该函数将返回200的状态头。在我的例子中,我需要“get_older_updates”操作,但我想您可以将其用于/bp themes/bp default/_inc/ajax.php:27中定义的任何其他操作

add_action( 'wp_ajax_activity_get_older_updates', 'bp_dtheme_activity_template_loader2' );
add_action( 'wp_ajax_nopriv_activity_get_older_updates', 'bp_dtheme_activity_template_loader2' );

function bp_dtheme_activity_template_loader2(){
    if(isset($_REQUEST['action']) && $_REQUEST['action'] == 'activity_get_older_updates')
    {
        status_header( 200 );
    }
}   

在BuddyPress中,0[[SPLIT]]实际上是一个肯定的响应,-1[[SPLIT]]是一个否定的响应。它似乎可以处理AJAX失败,奇怪的是响应顺利通过,但它发送的是404头,这会混淆AJAX脚本。2其他人在Godaddy上报告了这一点,但没有成功的结果。我向他们提出了一个支持请求,但我认为你们可能会更有帮助。在发出AJAX请求时添加status_header(200)函数调用也解决了这个问题:if($_GET['AJAX']){status_header(200);…}