json格式错误Uncaught SyntaxError: Unexpected token :
该错误是由于返回的结果格式错误导致,我出现这个错误的原因是由与jsonp的跨域请求,但是返回的json而导致的错误。在这里由于jsonp的跨域请求返回的应该是callback(json);但是接口返回的是json,所以错误。
解决方法:
1、改造后台的接口,让后台将json放在你jsonp发给后台的callback中;
2、采用yql,也就是yahoo提供的jsonp代理,进行jsonp的跨域请求,返回json。
jsonp获取json数据
<script type="text/javascript" src="http://www.w3dev.cn/rardownload/20130106/20130106170832648.js"></script>
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.2.min.js"></script>
<script>
$.ajax({
url: 'http://query.yahooapis.com/v1/public/yql',
dataType: 'jsonp',
data: {
q: "select * from json where url=\"http://www.w3dev.cn/json.asp\"",
format: "json"
},
success: function (d) {
alert(JSON.stringify(d))//远程json数据放在query.results下
}
});
http://query.yahooapis.com/v1/public/yql JSONP跨域接口API使用说明