ie浏览器上出现JSON解析错误
JSON Parse Error on Internet Explorer
我使用jscript从Flickr检索JSON数据。在除IE以外的所有浏览器中都能100%工作。我使用jquery的每个函数调用这个特定的IE函数:
//some code
if ($.browser.msie && window.XDomainRequest) {
var xdr;
var url = "http://api.flickr.com/services/rest/?method=flickr.photosets.getPhotos&api_key=" + apiKey + "&photoset_id=" + set + "&extras=url_sq&format=json&nojsoncallback=1";
xdr = new XDomainRequest();
if (xdr) {
xdr.open("get", url);
xdr.send();
var data = JSON.parse(xdr.responseText);
//some jquery stuff
}
}
在IE中,函数返回的语法错误在var data = JSON.parse(xdr.responseText);但错误是随机的,它在显示错误之前检索随机数量的照片..
我已经检查了所有涉及的变量,一切都返回OK。
我使用json2.js
更新:JSON可能结果:
{
"photoset": {
"id": "72157627083924637",
"primary": "5943107169",
"owner": "63570294@N03",
"ownername": "motorespt.com",
"photo": [
{
"id": "5943107169",
"secret": "e6099e3936",
"server": "6029",
"farm": 7,
"title": "Peugeot 206",
"isprimary": "0",
"url_sq": "http://farm7.static.flickr.com/6029/5943107169_e6099e3936_s.jpg",
"height_sq": 75,
"width_sq": 75
}
],
"page": 1,
"per_page": 500,
"perpage": 500,
"pages": 1,
"total": "1"
},
"stat": "ok"
}
或
{"stat":"fail", "code":1, "message":"Photoset not found"}
更新:感谢所有的帮助,我能够找到错误,并使一个功能兼容ie7 +, Firefox, Chrome等。
function flickr_test(){
var apiKey = 'YOUR_API_KEY';
$.ajax({
url: 'http://api.flickr.com/services/rest/',
data: {
method: 'flickr.test.echo',
api_key: apiKey,
format: 'json',
test: 'test string',
jsoncallback: 'jsonFlickrApi'
},
dataType: 'jsonp'
});
}
function jsonFlickrApi(response){
console.log(response.stat);
}
注:: 'test' var是字符串,我想传递给回调函数
在ie8及以下浏览器上解析JSON有问题。它无法识别JSON函数。
下载文件https://github.com/douglascrockford/JSON-js/blob/master/json2.js将其包含在应用程序中,应该可以解决问题。
使用不同的浏览器可以选择不同的方法:
在IE6, 7中选择eval在IE8中选择原生JSON在firefox中选择new Function 2, 3在Safari4中选择eval当您使用其他浏览器时,eval的总体性能与new Function相同。
使用文件https://github.com/douglascrockford/JSON-js/blob/master/json2.js你会看到这样的错误:"解析字符串:Line: 191错误:对象不支持此属性或方法"。属性或方法为valueOf()。
我使用JSON2错误/与另一个脚本冲突中建议的解决方案
返回(typeof this)。valueOf === 'function') ?this.valueOf (): this.toString ());
而不是
返回this.valueOf ();
- JSON分析错误:Java中AJAX、Javascript和Servlet的意外EOF
- 错误405:向Java控制器(Ajax)发送JSON时找不到POST方法
- AJAX语法错误:JSON.parse:意外字符
- 错误:JSON分析错误:使用角度转换时,属性名称必须是字符串文字
- Json响应错误Json.parse:意外的数据结束错误
- json错误json.parse:意外的数据结束错误
- 语法错误:JSON.parse:意外字符
- 语法错误:JSON 分析错误:意外的标识符“对象”
- 语法错误:JSON.parse:意外的数据结束
- 错误:“JSON.parse:JSON 数据第 1 行第 1 列的意外字符”,当包含其他 php 文件时
- 我有一个有效的 JSON,但我不断收到“语法错误 json.parse 第 1 行意外的数据结尾”
- 错误 JSON 响应中出现意外的令牌<
- 错误 JSON.parse 使用 ajax con pusher PHP
- 错误JSON未定义
- 未捕获的语法错误:JSON.parse上出现意外的标记o
- 无法识别字段-未标记为可忽略错误-JSON-Java对象
- 解析JSON通过javascript得到错误:JSON.解析:意想不到的人物
- 语法错误:JSON 中位置 1 处出现意外的标记 o
- Sencha触摸-错误- JSON恢复
- Sharepoint Check In Rest API错误'JSON流格式不佳'