Uncaught SyntaxError: Unexpected token :

本文介绍了解决JSONP跨域请求时遇到的Uncaught SyntaxError: Unexpected token错误的方法。主要原因是返回的数据格式不正确,正确的做法是将JSON数据包裹在回调函数中。提供了两种解决方案:一是修改后端接口;二是利用Yahoo的YQL服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

json格式错误Uncaught SyntaxError: Unexpected token :

该错误是由于返回的结果格式错误导致,我出现这个错误的原因是由与jsonp的跨域请求,但是返回的json而导致的错误。在这里由于jsonp的跨域请求返回的应该是callback(json);但是接口返回的是json,所以错误。

解决方法:

1、改造后台的接口,让后台将json放在你jsonp发给后台的callback中;

2、采用yql,也就是yahoo提供的jsonp代理,进行jsonp的跨域请求,返回json。

jsonp获取json数据

[javascript]  view plain  copy
  1. <script type="text/javascript" src="http://www.w3dev.cn/rardownload/20130106/20130106170832648.js"></script>    
  2. <script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.2.min.js"></script>    
  3. <script>    
  4.     $.ajax({    
  5.         url: 'http://query.yahooapis.com/v1/public/yql',    
  6.         dataType: 'jsonp',    
  7.         data: {    
  8.             q: "select * from json where url=\"http://www.w3dev.cn/json.asp\"",    
  9.             format: "json"    
  10.         },    
  11.         success: function (d) {    
  12.            alert(JSON.stringify(d))//远程json数据放在query.results下    
  13.         }    
  14.     });   
http://query.yahooapis.com/v1/public/yql JSONP跨域接口API使用说明
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值