Javascript jQuery$.post success函数从不激发
我有一个$.post,使用Fiddler我可以看到它总是成功发布,但我的成功函数从未被激活 成功发布到url返回1或失败返回0,每次我测试它都返回预期值1,所以我不知道我做错了什么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: $('#
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进行测试。有趣的是,这个例子对我很有用。我将把它集成回我的应用程序中,如果一切都像预期的那样工作,我将标记为答案。谢谢