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 相关文章推荐
三级下拉菜单的js实现代码
May 23 Javascript
javascript中的注释使用与注意事项小结
Sep 20 Javascript
兼容FF和IE的动态table示例自写
Oct 21 Javascript
toggle()隐藏问题的解决方法
Feb 17 Javascript
jQuery中document与window以及load与ready 区别详解
Dec 29 Javascript
JS提交form表单实例分析
Dec 10 Javascript
js面向对象的写法
Feb 19 Javascript
使用jquery/js获取iframe父子级、同级获取元素的方法
Aug 05 Javascript
如何提高Dom访问速度
Jan 05 Javascript
jquery Form轻松实现文件上传
May 24 jQuery
vue采用EventBus实现跨组件通信及注意事项小结
Jun 14 Javascript
深入解析vue 源码目录及构建过程分析
Apr 24 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
Windows中安装Apache2和PHP4权威指南
2006/11/18 PHP
php实现的在线人员函数库
2008/04/09 PHP
php学习之数据类型之间的转换介绍
2011/06/09 PHP
php数组函数序列之array_unique() - 去除数组中重复的元素值
2011/10/29 PHP
php统计时间和内存使用情况示例分享
2014/03/13 PHP
PHP+Session防止表单重复提交的解决方法
2018/04/09 PHP
解决thinkPHP 5 nginx 部署时,只跳转首页的问题
2019/10/16 PHP
基于jquery的表格排序
2010/09/11 Javascript
JS维吉尼亚密码算法实现代码
2010/11/09 Javascript
JavaScript的Module模式编程深入分析
2013/08/13 Javascript
关于jquery的多个选择器的使用示例
2013/10/18 Javascript
简述JavaScript的正则表达式中test()方法的使用
2015/06/16 Javascript
JavaScript微信定位功能实现方法
2016/11/29 Javascript
使用jQuery实现购物车结算功能
2017/08/15 jQuery
基于es6三点运算符的使用方法(实例讲解)
2017/10/12 Javascript
js 客户端打印html 并且去掉页眉、页脚的实例
2017/11/03 Javascript
用POSTMAN发送JSON格式的POST请求示例
2018/09/04 Javascript
原生JS实现获取及修改CSS样式的方法
2018/09/04 Javascript
Vue.js项目实战之多语种网站的功能实现(租车)
2019/08/07 Javascript
使用python实现BLAST
2018/02/12 Python
jupyter notebook引用from pyecharts.charts import Bar运行报错
2020/04/23 Python
python opencv实现切变换 不裁减图片
2018/07/26 Python
django admin.py 外键,反向查询的实例
2019/07/26 Python
在macOS上搭建python环境的实现方法
2019/08/13 Python
django和vue实现数据交互的方法
2019/08/21 Python
解决Tensorflow 内存泄露问题
2020/02/05 Python
python 安装库几种方法之cmd,anaconda,pycharm详解
2020/04/08 Python
python将logging模块封装成单独模块并实现动态切换Level方式
2020/05/12 Python
css3实现多个元素依次显示效果
2017/12/12 HTML / CSS
Hanro官网:奢华男士和女士内衣、睡衣和家居服
2018/10/25 全球购物
ddl,dml和dcl的含义
2016/05/08 面试题
绘画设计学生的个人自我评价
2013/09/20 职场文书
会计岗位说明书
2014/07/29 职场文书
离婚协议书范本2014
2014/10/27 职场文书
工人先锋号申报材料
2014/12/29 职场文书
小学生教师节广播稿
2015/08/19 职场文书