gpt4 book ai didi

javascript - jQuery ajax 成功事件奇怪的是没有在 ajaxSetup 上工作

转载 作者:行者123 更新时间:2023-11-29 17:24:34 29 4
gpt4 key购买 nike

背景:

  • 使用 jQuery 1.7 客户端
  • PHP 服务器端
  • 通过 json_encode php 函数使用 json 响应
  • 内容类型 header 正确,以下任何一个都有效:text/plain、text/x-json、application/json。
  • 我的 php 代码没有抛出任何错误
  • 正在使用 Firefox 11
  • 正在使用 js 控制台和其他网站的开发者工具
  • HTTP/1.1 200 成功

在这段 Javascript 代码中,success 事件永远不会被触发:

$.ajaxSetup({cache:false,
success:function(d) {
console.log("ok from setup with data "+d.toSource())
},
complete:function(xhr,ts){
console.log("Ajax finished reponse:"+xhr.responseText)
},
error:function(jqXHR, textStatus, errorThrown){
console.log("Error")
}
});
$.getJSON("test2.php",{},function(data){
//some code here
});

当我这样做时,它起作用了:

$.ajaxSetup({cache:false,                
complete:function(xhr,ts){
console.log("Ajax completado con:"+xhr.responseText)
},
error:function(jqXHR, textStatus, errorThrown){
console.log("Error")
}
});
$.getJSON("test2.php",{},
function(data){
//some code here
}).success(function(d){
console.log("success applied directly, data "+d.toSource())
}
);

在这两种情况下,complete 事件总是被触发而 error 事件永远不会被触发。但是,在第二个代码中成功被触发。显然对于 .get() 方法是一样的。

PHP代码:

<?php header("Content-Type:application/json;charset=utf-8");
//or whatever text/x-json text/plain, even text/html, jquery do the dirty job
echo json_encode(array("stat"=>"1")) ?>

我的目标:

  1. 我想对所有 ajax 请求触发相同的成功事件
  2. 我想在我的成功事件中使用请求返回的 json 数据,如果可能的话,不要将原始 jqXHR responseText 再次转换为 json/li>

问题很奇怪,有什么想法吗?


我阅读了所有这些问题:

而且我很确定它们都不是我的问题。

最佳答案

查看 ajaxSetup 文档:http://api.jquery.com/jQuery.ajaxSetup/

Note: Global callback functions should be set with their respective global Ajax event handler methods—.ajaxStart(), .ajaxStop(), .ajaxComplete(), .ajaxError(), .ajaxSuccess(), .ajaxSend()—rather than within the options object for $.ajaxSetup().

我认为这就是你的问题。

更新

如果您希望您的 ajax 处理程序对于页面上的任何 ajax 请求都是全局的,请执行如下操作:

$(document).ajaxSuccess(function(d){
console.log("ok from setup with data "+d.toSource());
});

关于javascript - jQuery ajax 成功事件奇怪的是没有在 ajaxSetup 上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10002048/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com