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 相关文章推荐
Jquery实现简单的动画效果代码
Mar 18 Javascript
JavaScript实现拼音排序的方法
Nov 20 Javascript
浅析js中2个等号与3个等号的区别
Aug 06 Javascript
js用正则表达式来验证表单(比较齐全的资源)
Nov 17 Javascript
jQuery中get()方法用法实例
Dec 27 Javascript
图解prototype、proto和constructor的三角关系
Jul 31 Javascript
使用JS在浏览器中判断当前网络连接状态的几种方法
May 05 Javascript
vue中使用heatmapjs的示例代码(结合百度地图)
Sep 05 Javascript
Vue filter格式化时间戳时间成标准日期格式的方法
Sep 16 Javascript
微信小程序 冒泡事件原理解析
Sep 27 Javascript
Vue.js的模板语法详解
Feb 16 Javascript
vue 如何使用递归组件
Oct 23 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
上海无线电三厂简史修改版
2021/03/01 无线电
php循环输出数据库内容的代码
2008/05/24 PHP
解析php扩展php_curl.dll不加载的解决方法
2013/06/26 PHP
php 中文字符串首字母的获取函数分享
2013/11/04 PHP
php去除字符串中空字符的常用方法小结
2015/03/17 PHP
自动更新作用
2006/10/08 Javascript
JavaScript实现Sleep函数的代码
2007/03/04 Javascript
用 Javascript 验证表单(form)中的单选(radio)值
2009/09/08 Javascript
checkbox设置复选框的只读效果不让用户勾选
2013/08/12 Javascript
javascript操作table(insertRow,deleteRow,insertCell,deleteCell方法详解)
2013/12/16 Javascript
JavaScript通过使用onerror设置默认图像显示代替alt
2016/03/01 Javascript
jQuery+Ajax+PHP弹出层异步登录效果(附源码下载)
2016/05/27 Javascript
BootStrap初学者对弹出框和进度条的使用感觉
2016/06/27 Javascript
轻松实现jQuery添加删除按钮Click事件
2017/03/13 Javascript
Vue表单demo v-model双向绑定问题
2018/06/29 Javascript
原生JS实现随机点名项目的实例代码
2019/04/30 Javascript
inquirer.js一个用户与命令行交互的工具详解
2019/05/18 Javascript
用Vue.js在浏览器中实现裁剪图像功能
2019/06/18 Javascript
使用微信SDK自定义分享的方法
2019/07/03 Javascript
vuex vue简单使用知识点总结
2019/08/29 Javascript
vue 点击其他区域关闭自定义div操作
2020/07/17 Javascript
NumPy.npy与pandas DataFrame的实例讲解
2018/07/09 Python
Python文件读写常见用法总结
2019/02/22 Python
Python unittest单元测试框架实现参数化
2020/04/29 Python
基于Python实现全自动下载抖音视频
2020/11/06 Python
DKNY品牌官网:纽约大都会时尚风格
2016/10/20 全球购物
丹尼尔惠灵顿手表天猫官方旗舰店:Daniel Wellington
2017/08/25 全球购物
Marc O’Polo俄罗斯官方在线商店:德国高端时尚品牌
2019/12/26 全球购物
奥地利婴儿用品和玩具购物网站:baby-markt.at
2020/01/26 全球购物
开办加工厂创业计划书
2014/01/03 职场文书
清洁工表扬信
2014/01/08 职场文书
医院义诊活动总结
2014/07/04 职场文书
小学班主任研修日志
2015/11/13 职场文书
最新的离婚协议书范本!
2019/07/02 职场文书
Vue鼠标滚轮滚动切换路由效果的实现方法
2021/08/04 Vue.js
Mysql中mvcc各场景理解应用
2022/08/05 MySQL