Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.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
Javascript IE/Firefox中返回零的Ajax调用_Javascript_Jquery_Ajax_Internet Explorer_Firefox - Fatal编程技术网

Javascript IE/Firefox中返回零的Ajax调用

Javascript IE/Firefox中返回零的Ajax调用,javascript,jquery,ajax,internet-explorer,firefox,Javascript,Jquery,Ajax,Internet Explorer,Firefox,我已经为此工作了2天,但不知道是什么原因导致IE(v11)和Firefox出现故障。在铬上可以很好地工作 这里有很多问题涉及到多个Ajax调用的缓存问题,特别是IE,但我认为这不是问题所在。此代码实际上是页面上两种表单之一。单击“全部提交””按钮时,通过jQuery提交。但是,我禁用了第一个表单,第二个表单仍然不能正常工作 以下是错误表单提交的JS/Ajax代码: $("body").on( "submit", ".update-guest-email", function(event) {

我已经为此工作了2天,但不知道是什么原因导致IE(v11)和Firefox出现故障。在铬上可以很好地工作

这里有很多问题涉及到多个Ajax调用的缓存问题,特别是IE,但我认为这不是问题所在。此代码实际上是页面上两种表单之一。单击“全部提交””按钮时,通过jQuery提交。但是,我禁用了第一个表单,第二个表单仍然不能正常工作

以下是错误表单提交的JS/Ajax代码:

$("body").on( "submit", ".update-guest-email", function(event) {
    event.preventDefault();
    var form = $(this);

    if( form.find('input[name="email"]').val() == "" ) {
        return;
    }
    if (!formChecker(form)){
        return;
    }

    var dataString = {
        action : 'update_guest_party',
        data : form.serializeArray()
    }

    $.ajax({
        cache: false,
        type: "post",
        url: ajaxurl, // This is the WP AJAX handler.
        data: dataString,
        beforeSend: function() {
            form.find('input').prop('disabled', true);
        },
        success: function(response){ //so, if data is retrieved, store it in response
            if (response.data >= 1){
                form.append('<div class="center confirmed"><span class="dashicons dashicons-yes"></span></div>');
                form.removeClass();
            } else {
                form.find('input').prop('disabled', false);
                $(".errors").html("That's weird; it didn't go through. You can try again or <a href='mailto:email@gmail.com'>send us an email</a>.")
                $('.errors').slideDown(250);
            }
        } // Close success response.
    }); // Close AJAX.
}); // End form-submit.
但随后的响应只是一个“0”(零)。根据Chrome,响应应如下所示:

{"success":true,"data":1}

非常感谢您的帮助!如果能在生产中看到它会有帮助的话,我也在一台实时服务器上安装了它。

刚刚开始在这里发布我的“解决方案”,和往常一样,这是小菜一碟

这个问题与浏览器无关。正如我们在上面开始了解的那样,一切都是服务器端的。WordPress需要在网站前端运行。换句话说,它在其他浏览器中不起作用的原因是,除了Chrome之外,我没有以管理员身份登录。这也解释了为什么马克在Chrome上看到了同样的问题,因为他(显然)也没有登录

下面是我最后使用的代码,以防您想看一个示例。相同的函数(“批量更新地址”),只需将其与前面提到的挂钩的“nopriv”版本进行复制:

add_action( 'wp_ajax_bulk_update_address', 'bulk_update_address' );
add_action( 'wp_ajax_nopriv_bulk_update_address', 'bulk_update_address' );

事实上,我提前在那里写了一行“nopriv”…只是忘了删除周围的评论。哎呀。希望这能让将来的人不那么头疼

刚刚开始在这里发布我的“解决方案”,和往常一样,这是小菜一碟

这个问题与浏览器无关。正如我们在上面开始了解的那样,一切都是服务器端的。WordPress需要在网站前端运行。换句话说,它在其他浏览器中不起作用的原因是,除了Chrome之外,我没有以管理员身份登录。这也解释了为什么马克在Chrome上看到了同样的问题,因为他(显然)也没有登录

下面是我最后使用的代码,以防您想看一个示例。相同的函数(“批量更新地址”),只需将其与前面提到的挂钩的“nopriv”版本进行复制:

add_action( 'wp_ajax_bulk_update_address', 'bulk_update_address' );
add_action( 'wp_ajax_nopriv_bulk_update_address', 'bulk_update_address' );

事实上,我提前在那里写了一行“nopriv”…只是忘了删除周围的评论。哎呀。希望这能让将来的人不那么头疼

给我们实时服务器URL,我来看看。@Mark肯定的是:我的Chrome 43、Firefox 38和IE 11都返回了“很好的小提琴棒!”!在UI中找不到您。Chrome和Firefox在dev工具中返回状态200ok和
{“success”:true,“data”:{“empty”:true}
。IE返回200 OK,但没有响应主体。明天早上我会仔细看看的。@Mark,哦,嘎,我就知道我忘了什么。第一次调用功能正常;分别在“Michael”和“Brundis”中搜索姓名。很抱歉,谢谢你的帮助!我已经向Fiddler确认,所有3个浏览器都收到了完全相同的响应体,用户界面显示“Groovy,我们找到你了!请填写所有字段…”
fa{“success”:true,“data”:{“multiple”:false,“parties”:[{“id”:“84”,“name”:“Brundis”,“count”:“1”],“guests”:[{“id”:“149”,“party_id”:“84”,“first_name”:“Michael”,“last_name”:“Brundis”},{“id”:“263”,“党id”:“84”,“名字”:“[删除]”,“姓氏”:“[删除]”}}0
所有响应头都相同,除了Chrome还具有访问控制允许来源:http://sarahandcasey.com 访问控制允许凭据:true给我们实时服务器URL,我来看看。@Mark确定:我的Chrome 43、Firefox 38和IE 11在UI.C中都返回了“很好的小提琴棒!我们找不到你”hrome和Firefox在dev tools中返回状态200 OK,并带有
{“success”:true,“data”:{“empty”:true}
。IE返回状态200 OK,但没有响应正文。我明天早上会仔细查看。@Mark,噢,gah-我知道我忘记了什么。第一次调用功能正常;搜索“Michael”和“Brundis”,分别表示姓名。很抱歉,谢谢你的帮助!我已经向Fiddler确认,所有3个浏览器都收到了完全相同的响应体,用户界面显示“Groovy,我们找到你了!请填写所有字段…”
fa{“success”:true,“data”:{“multiple”:false,“parties”:[{“id”:“84”,“name”:“Brundis”,“count”:“1”],“guests”:[{“id”:“149”,“party_id”:“84”,“first_name”:“Michael”,“last_name”:“Brundis”}、{“id”:“263”、“party_id”:“84”、“first_name”:“[REMOVED]”、“last_name”:“[REMOVED]”}}}}}}0
所有响应头都是相同的,除了Chrome还具有
访问控制允许来源:http://sarahandcasey.com 访问控制允许凭据:true