Jquery跨域获得Json时invalid label错误的解决办法


Posted in Javascript onJanuary 11, 2011

最后,仔细安静下来,细读 json 官方文档后发现这么一段:

JSON数据是一种能很方便通过JavaScript解析的结构化数据。如果获取的数据文件存放在远程服务器上(域名不同,也就是跨域获取数据),则需要使用jsonp类型。使用这种类型的话,会创建一个查询字符串参数 callback=? ,这个参数会加在请求的URL后面。服务器端应当在JSON数据前加上回调函数名,以便完成一个有效的JSONP请求。如果要指定回调函数的参数名来取代默认的callback,可以通过设置$.ajax()的jsonp参数。

其实jquery跨域的原理是通过外链 <script> 来实现的,然后在通过回调函数加上回调函数的参数来实现真正的跨域

Jquery 在每次跨域发送请求时都会有callback这个参数,其实这个参数的值就是回调函数名称,所以,服务器端在发送json数据时,应该把这个参数放到前面,这个参数的值往往是随机生成的,如:jsonp1294734708682,同时也可以通过 $.ajax 方法设置 callback 方法的名称。明白了原理后,服务器端应该这样发送数据:

string message = "jsonp1294734708682({\"userid\":0,\"username\":\"null\"})";

这样,json 数据 {\"userid\":0,\"username\":\"null\"} 就作为了 jsonp1294734708682 回调函数的一个参数

跨域获得Json时invalid label的解决办法:

服务器端在输出 Json 数据时,前面加上 callback 参数的值,如:jsonp1294734708682({\"userid\":0,\"username\":\"null\"})

Javascript 相关文章推荐
JavaScript中for-in遍历方式示例介绍
Feb 11 Javascript
jquery基础教程之数组使用详解
Mar 10 Javascript
javascript回车完美实现tab切换功能
Mar 13 Javascript
三种方式获取XMLHttpRequest对象
Apr 21 Javascript
bootstrap布局中input输入框右侧图标点击功能
May 16 Javascript
JavaScript兼容浏览器FF/IE技巧
Aug 14 Javascript
KnockoutJS 3.X API 第四章之数据控制流foreach绑定
Oct 10 Javascript
使用vue制作探探滑动堆叠组件的实例代码
Mar 07 Javascript
JS简单实现查看文档创建日期、修改日期和文档大小的方法示例
Apr 08 Javascript
详解vue-cli项目开发/生产环境代理实现跨域请求
Jul 23 Javascript
深入浅析vue中cross-env的使用
Sep 12 Javascript
vue过滤器实现日期格式化的案例分析
Jul 02 Javascript
JS无限树状列表实现代码
Jan 11 #Javascript
jQuery UI的Dialog无法提交问题的解决方法
Jan 11 #Javascript
JQuery 1.3.2以上版本中出现pareseerror错误的解决方法
Jan 11 #Javascript
Jquery中获取iframe的代码
Jan 11 #Javascript
基于jQuery的message插件实现右下角弹出消息框
Jan 11 #Javascript
基于jquery的cookie的用法
Jan 10 #Javascript
基于jquery的高性能td和input切换并可修改内容实现代码
Jan 09 #Javascript
You might like
Yii实现多按钮保存与提交的方法
2014/12/03 PHP
PHP把MSSQL数据导入到MYSQL的方法
2014/12/27 PHP
Zend Framework教程之路由功能Zend_Controller_Router详解
2016/03/07 PHP
详解php伪造Referer请求反盗链资源
2019/01/24 PHP
一款JavaScript压缩工具:X2JSCompactor
2007/06/13 Javascript
JavaScript Konami Code 实现代码
2009/07/29 Javascript
EXT中xtype的含义分析
2010/01/07 Javascript
jQuery简单实现banner图片切换
2014/01/02 Javascript
用jquery实现的一个超级简单的下拉菜单
2014/05/18 Javascript
javascript自定义右键弹出菜单实现方法
2015/05/25 Javascript
angularjs学习笔记之简单介绍
2015/09/26 Javascript
javascript实现获取浏览器版本、浏览器类型
2015/12/02 Javascript
jQuery实现网页顶部固定导航效果代码
2015/12/24 Javascript
AngularJS中实现显示或隐藏动画效果的方式总结
2015/12/31 Javascript
利用Node.js编写跨平台的spawn语句详解
2017/02/12 Javascript
JavaScript运动框架 链式运动到完美运动(五)
2017/05/18 Javascript
react-router JS 控制路由跳转实例
2017/06/15 Javascript
angularjs使用div模拟textarea文本框的方法
2018/10/02 Javascript
微信小程序实现列表左右滑动
2020/11/19 Javascript
django请求返回不同的类型图片json,xml,html的实例
2018/05/22 Python
python调用百度语音识别api
2018/08/30 Python
详解Python安装tesserocr遇到的各种问题及解决办法
2019/03/07 Python
python将字母转化为数字实例方法
2019/10/04 Python
使用pyecharts1.7进行简单的可视化大全
2020/05/17 Python
python3的pip路径在哪
2020/06/23 Python
如何实现一个python函数装饰器(Decorator)
2020/10/12 Python
python线程优先级队列知识点总结
2021/02/28 Python
SVG实现多彩圆环倒计时效果的示例代码
2017/11/21 HTML / CSS
UML设计模式笔试题
2014/06/07 面试题
生物制药自我鉴定
2014/01/25 职场文书
银行实习推荐信
2015/03/27 职场文书
值班管理制度范本
2015/08/06 职场文书
初中生物教学随笔
2015/08/15 职场文书
快消品行业营销模式与盈利模式分享
2019/09/27 职场文书
Django项目如何获得SSL证书与配置HTTPS
2021/04/30 Python
win10键盘驱动怎么修复?Win10键盘驱动修复小技巧
2022/04/06 数码科技