jQuery 1.4.4 和 1.7.2 之间的 .ajax() 发生了什么导致代码中断
What happened to .ajax() between jQuery 1.4.4 and 1.7.2 to make code break?
我需要在当前使用1.4.4的站点上迁移到jQuery 1.7.2。 我有下面的 ajax 调用,它在 1.4.4 中工作正常,但正在回踢
没有从文本到 [对象] 的转换
在 1.7.2 中。 (我认为这与.parseJSON()有关,但我不确定。
function ajax_update(table_value, key_value, value_value, newkey_value, newvalue_value, debug) {
$.ajax({
type: "POST",
url: "/index.php/ajax/updatepost/",
data: {
table: table_value,
key: key_value,
value: value_value,
newkey: newkey_value,
newvalue: newvalue_value
},
dataType: JSON,
success: function(data, textStatus){
var result = jQuery.parseJSON(data);
//both debug and flash going in two different directions
$("div#flash > p").text(result.message);
$("div#flash").removeClass().addClass("message").addClass(result.flavor).slideDown(500).delay(1200).slideUp(500);
if (debug == true) {
$("div#debugflash > p").text(result.debug);
$("div#debugflash").removeClass().addClass("message").addClass("information").show();
}
},
error: function(errorObj, textStatus, errorThrown){
$("div#flash > p").text(errorThrown);
$("div#flash").removeClass().addClass("message").addClass("error").slideDown(500).delay(1200).slideUp(500);
if (debug == true) {
$("div#debugflash > p").text(errorThrown);
$("div#debugflash").removeClass().addClass("message").addClass("information").show();
}
}
});
}
json 在 jsonlint.com 中验证,由调用 json_encode(array) 的 php 脚本生成,如下所示:
{"message":"Updated field name with value ALAMO",
"flavor":"success",
"debug":"UPDATE `customers` SET `name` = 'ALAMO' WHERE `cust_id` = 'ALA100'"
}
头:
HTTP/1.1 200 OK
Date: Tue, 01 May 2012 00:00:15 GMT
Server: Apache/2.2.21 (Unix) mod_ssl/2.2.21 OpenSSL/0.9.8r DAV/2 PHP/5.3.8 with Suhosin-Patch
X-Powered-By: PHP/5.3.8
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
MS-Author-Via: DAV
Content-Length: 177
Keep-Alive: timeout=15, max=96
Connection: Keep-Alive
Content-Type: application/json
任何帮助都非常感谢。
我认为这与这条线有关
dataType: JSON
试试这个
dataType: 'json'
jQuery 1.5 重写了 AJAX,使其更具可扩展性。 请参阅 http://encosia.com/jquery-1-5s-ajax-rewrite-and-asp-net-services-all-is-well/传递到成功函数的数据可能已经JSON.parse()
编辑。
我认为您的错误可能与这一行有关:
var result = jQuery.parseJSON(data);
尝试使用
alert(data);
以确保数据变量包含数据。
相关文章:
- Javascript函数 - 通过引用复制,但这里发生了什么
- 套接字发生了什么's在'断开连接'事件(服务器端)
- 这段代码中发生了什么
- 通过它访问HTML元素's id DIRECTLY-这里发生了什么
- JavaScript's数组过滤器函数在没有分配函数的情况下使用-这里发生了什么
- 这个JavaScript函数中发生了什么
- 我的输入字段听到除回车之外的每个“键下”事件.我有一个日期选择器,不确定发生了什么
- isPrototypeOf 说不,但实例说是——发生了什么
- 十分钟内的 Javascript:此示例代码中发生了什么说明惰性范围
- 数字值正在更改,任何人都知道发生了什么
- 当需要(“http”)时发生了什么.Server() 以 Express 应用程序作为其参数进行评估
- 有人请帮助解释这个javascript代码,即发生了什么以及代码在做什么
- jQuery 1.4.4 和 1.7.2 之间的 .ajax() 发生了什么导致代码中断
- 此代码中发生了什么,如果没有“with”关键字,以下内容的基本实现是什么
- 这个JavaScript三元运算符中发生了什么
- 有人能告诉我循环中发生了什么吗
- 按下escape退出全屏时发生了什么?我如何用按钮复制它
- 触摸启动与点击.引擎盖下发生了什么
- Handlebars.js中的__get__函数发生了什么
- 有人能帮我理解这个代码中发生了什么吗