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 相关文章推荐
Mootools 1.2教程 排序类和方法简介
Sep 15 Javascript
JQquery的一些使用心得分享
Aug 01 Javascript
Javascript浮点数乘积运算出现多位小数的解决方法
Feb 17 Javascript
jquery选择器需要注意的问题
Nov 26 Javascript
浅谈js中对象的使用
Aug 11 Javascript
jQuery鼠标事件总结
Oct 13 Javascript
基于JS实现限时抢购倒计时间表代码
May 09 Javascript
详解webpack+gulp实现自动构建部署
Jun 29 Javascript
JavaScript模板引擎应用场景及实现原理详解
Dec 14 Javascript
微信小程序如何利用getCurrentPages进行页面传值
Jul 01 Javascript
js使用文件流下载csv文件的实现方法
Jul 15 Javascript
浅谈vue中$bus的使用和涉及到的问题
Jul 28 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
用PHP与XML联手进行网站编程代码实例
2008/07/10 PHP
php设计模式 Chain Of Responsibility (职责链模式)
2011/06/26 PHP
easyui的tabs update正确用法分享
2014/03/21 PHP
54个提高PHP程序运行效率的方法
2015/07/19 PHP
PHP闭包函数传参及使用外部变量的方法
2016/03/15 PHP
Laravel实现构造函数自动依赖注入的方法
2016/03/16 PHP
PHP输出XML格式数据的方法总结
2017/02/08 PHP
详解PHP实现支付宝小程序用户授权的工具类
2018/12/25 PHP
PHP中ltrim()函数的用法与实例讲解
2019/03/28 PHP
JavaScript入门教程(6) Window窗口对象
2009/01/31 Javascript
两个listbox实现选项的添加删除和搜索
2013/03/01 Javascript
使用闭包对setTimeout进行简单封装避免出错
2013/07/10 Javascript
javascript实现简单的进度条
2015/07/02 Javascript
深入探究JavaScript中for循环的效率问题及相关优化
2016/03/13 Javascript
jQuery使用Selectator插件实现多选下拉列表过滤框(附源码下载)
2016/04/08 Javascript
深入理解JS函数的参数(arguments)的使用
2016/05/28 Javascript
AngularJS ng-blur 指令详解及简单实例
2016/07/30 Javascript
bootstrap modal弹出框的垂直居中
2016/12/14 Javascript
几行js代码实现自适应
2017/02/24 Javascript
使用Browserify来实现CommonJS的浏览器加载方法
2017/05/14 Javascript
微信小程序之网络请求简单封装实例详解
2017/06/28 Javascript
koa2使用ejs和nunjucks作为模板引擎的使用
2018/11/27 Javascript
vue配置font-awesome5的方法步骤
2019/01/27 Javascript
Vue中UI组件库之Vuex与虚拟服务器初识
2019/05/07 Javascript
微信小程序开发之转发分享功能
2019/10/22 Javascript
jQuery实现鼠标拖动图片功能
2021/03/04 jQuery
实例讲解Python的函数闭包使用中应注意的问题
2016/06/20 Python
python实现媒体播放器功能
2018/02/11 Python
tensorflow学习教程之文本分类详析
2018/08/07 Python
基于python实现学生信息管理系统
2019/11/22 Python
巴西电子产品购物网站:Saldão da Informática
2018/01/09 全球购物
女性健康知识讲座主持词
2015/07/04 职场文书
2016高考寄语集锦
2015/12/04 职场文书
不知如何爱孩子,这些方法教会您
2019/08/06 职场文书
800字作文之大雪
2019/12/04 职场文书
Mysql基础知识点汇总
2021/05/26 MySQL