我创建了一个基于Javascript的应用程序,该应用程序使用以下JQuery函数从特定URL反序列化JSON对象,并从中推断出一些数据。我考虑了来自两个不同URL的2个JSON对象。这两个对象包含完全相同的数据。
当我通过RESTClient插件分析第一个URL时,我得到以下标题:
Status Code: 200 OK
Access-Control-Allow-Origin: *
Alternate-Protocol: 80:quic,80:quic
Cache-Control: private
Content-Encoding: gzip
Content-Length: 53
Content-Type: application/json; charset=ISO-8859-1
Date: Fri, 20 Sep 2013 08:25:52 GMT
Server: Google Frontend
Vary: Accept-Encoding
通过RESTClient插件的第二个URL为我提供了以下标题:
Status Code: 200 OK
Content-Type: application/json;charset=UTF-8
Date: Fri, 20 Sep 2013 08:29:20 GMT
Server: Apache-Coyote/1.1
Transfer-Encoding: chunked
问题是第一个URL中的JSON对象是完全反序列化的,而第二个不是。 这是我的JQuery函数:
$.ajax({
type: 'GET',
url: 'http://localhost:8085/Metrics/kfc/brands/Metrics/type3/', //one of the two URLs
dataType: 'json',
contentType: "application/json; charset=UTF-8",
async: true,
success: function (data) {
if (data == null) {
return false;
}
dataFromServer = data;
$.each(dataFromServer, function (date, value) {
dates.push(date);
values.push(value);
});
result.dates = dates;
result.values = values;
},
error: function (msg, url, line) {
alert('error trapped in error: function(msg, url, line)');
alert('msg = ' + msg + ', url = ' + url + ', line = ' + line);
}
});
return result.dates;
}
进一步的反馈:警报中显示的错误消息是:
error trapped in error: function(msg, url, line)
msg = [object Object], url = error, line =
如果有人能够发现我的错误,我将非常感激。提前谢谢!
答案 0 :(得分:0)
如果您的网页未托管在托管这两项服务的同一位置,则必须启用跨网站脚本。
答案 1 :(得分:-1)
如果U有Json字符串,那么你想把它作为一个对象,然后按照代码
var object = JSON.parse(你的json字符串);