jQuery.parseJSON()未在Windows服务器上解码有效的Json字符串
jQuery.parseJSON() not decoding a valid Json string on a Windows server
我有这个wordpress javascript函数代码在Linux服务器上运行和工作,还有一个php函数"get_form_data"。
jQuery.ajax({
type: "POST",
url: MyAjax.ajaxurl,
data: {action: "get_form_data", id: id, cat_id: cat_id},
success: function(r) {
//alert(r);
var response = jQuery.parseJSON(r);
}
});
我将wordpress网站迁移到了带有IIS和PHP的Windows8Server,现在它在parseJSON行中抛出了一个错误,如下所示(只在Windows环境中发生):
SyntaxError:JSON.parse:JSON数据的第2行第1列出现意外字符
从PHP函数接收到的字符串被检索时没有任何问题,Ajax代码在解析字符串之前就进入了成功状态(通过启用注释的警报行),但一旦Json解析函数试图对其进行解码,它就会崩溃。Json字符串由PHP函数使用Json_encode()进行编码。
这是Ajax函数接收到的字符串,据我所知,这是一个有效的字符串。
["新的一天","2","一首歌","约翰","2014-12-08 13:04:56","1843","22"]
["New Day","2","One Song","John","2014-12-08 13:04:56","1843","22"]-是无效的JSON,http://www.w3schools.com/json/json_syntax.asp.将数组包装到数组的对象)
不知何故,$.parseJSON和$.parseJSON函数在带php的IIS 7上不适用,但在Apache上可以工作。它总是在IIS上崩溃。我尝试了不同的方法来转换从PHP函数检索到的javascript中的json编码字符串,并尝试过滤掉斜杠和换行符,但都无济于事。在线json查看器显示它是一个有效的json字符串。
对我有效的是使用老式的eval("("+r+")"),它的工作原理与json解析函数相同,缺点是使用它显然不安全,但我没有其他解决方案。
对我来说,这似乎是一个有效的JSON数组。我用这种方式测试了它,没有出现任何问题:
var rawJson = '["New Day","2","One Song","John","2014-12-08 13:04:56","1843","22"]';
var json = JSON.parse(rawJson);
for(i = 0; i < json.length; i++) {
console.log(json[i]);
}
JSON解析将字符串转换为JSON,所以我在数组周围加了单引号,使其成为字符串。
也许你可以试试这个:
jQuery.ajax({
url: MyAjax.ajaxurl,
data: {action: "get_form_data", id: id, cat_id: cat_id},
dataType: "json",
success: function(data) {
// r should be the returned array
for(i = 0; i < data.length; i++) {
console.log(data[i]);
}
}
});
拆分返回数据:在c#asmx中:string _json=";
_json=getJsonFunction(_dataSet.Tables[0]);_json+='`'+getJsonFunction(_dataSet.Tables[1]);
在Jquery中:数据=JSON.parse(res.d.split('`')[0]);
- 如何有效地将游戏数据存储在URL查询字符串中
- 如何使用Node.js最有效地解析网页
- jquery代码在Mozilla中有效,但在其他浏览器上无效
- 有效形式-始终只显示1个错误[角度]
- Javascript袖珍参考,第121页:这是怎么回事;猴子补丁”;方法应该有效
- 在文本区域POST后解码JSON
- 单击仅在第二次单击后有效
- 什么'是在asp.net MVC中将本地化的resources.resx文件转换为javascript文件的有效
- 为什么自我执行匿名有效
- D3.js生成有效的SVG,但不显示任何内容
- 如何在AngularJS中有效地检查日期是否有效
- Json字符串可以'当字符串末尾有“'时,t解码;
- 有没有一种方法可以在没有文档或jQuery的情况下使用javascript解码html实体
- 为什么不是'我的函数在解析云代码中工作吗?当我在Angular和Express中测试时,它是有效的
- 滚动在Chrome中有效,但在Firefox或IE中无效
- 有效地获取两个区间之间的随机整数
- jQuery.parseJSON()未在Windows服务器上解码有效的Json字符串
- 对区间[1,10^12]中的整数进行编码/解码的快速有效方法是什么
- 为解码音频数据(WebAudio API)定义“有效的mp3块”
- 如何在客户端解码JWT令牌有效负载