Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.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 jQuery$.post success函数从不激发_Javascript_Ajax_Jquery - Fatal编程技术网

Javascript jQuery$.post success函数从不激发

Javascript jQuery$.post success函数从不激发,javascript,ajax,jquery,Javascript,Ajax,Jquery,我有一个$.post,使用Fiddler我可以看到它总是成功发布,但我的成功函数从未被激活 成功发布到url返回1或失败返回0,每次我测试它都返回预期值1,所以我不知道我做错了什么 if ($('#mycheckbox').prop('checked')) { $.post('/base/MailingList/Subscribe/', { listId: $('#mycheckbox').val(), name: $('#

我有一个$.post,使用Fiddler我可以看到它总是成功发布,但我的成功函数从未被激活

成功发布到url返回1或失败返回0,每次我测试它都返回预期值1,所以我不知道我做错了什么

if ($('#mycheckbox').prop('checked')) {
    $.post('/base/MailingList/Subscribe/',
        {
            listId: $('#mycheckbox').val(),
            name: $('#subscriber-name').val(),
            email: $("#subscriber-email").val()
        },
        function(response) {
            console.log(response);
        });
}

粘贴另一个函数作为最终回调。该功能将在故障情况下运行

jquery建议这样做:

var jqxhr = $.post( "example.php", function() {
   alert( "success" );
})
.done(function() {
    alert( "second success" );
})
.fail(function() {
    alert( "error" );
})
.always(function() {
    alert( "finished" );
 });

我不确定这是否有用,但我在进行任何异步调用时总是使用完全限定的URL。您可能想试试:

$.post('http://mydomain.com/base/MailingList/Suscribe/', ...

此外,您可能希望处理函数接收回调函数中的所有三个参数(data、textStatus、jqXHR)。通过这种方式,您可以查看txtStatus来验证是否成功。

在我的例子中,问题是服务器上php文件中的头使用了错误的MIME类型(“应用程序/json”而不是“文本”)。如果发送的标题与数据类型不匹配,则会导致错误,$.post调用失败。

浏览器控制台会告诉您什么?如果fiddler中的响应显示为200状态,则它应该可以工作。除非你在IE7中,在IE7中,console.log调用将破坏success函数。控制台向我显示预期的“200OK”响应,这是我困惑的根源,也是我发表文章的原因。目前我正在使用Chrome和FireFox进行测试。有趣的是,这个例子对我很有用。我将把它集成回我的应用程序中,如果一切都像预期的那样工作,我将标记为答案。谢谢