关于jsonp的同步问题
来源:互联网 发布:生命最后的读书会 知乎 编辑:程序博客网 时间:2024/06/07 01:09
最近开始移动开发,因json无法跨域请求的问题,选择了以jsonp的形式向服务器传输数据,为使请求以同步方式执行,在ajax参数中加入了async:false,但出现各ajax块返回的数据混乱问题。经查明,jsonp不支持async:false属性。错误的代码块如下:
$.ajax({ url : 'xxx', data : { xxx : xxx, xxx : xxx }, dataType : 'jsonp', jsonpCallback : 'callback', async : false,//此处是jsonp不支持的参数 success : function (data) { //do something; }});
原理:
ajax和jsonp本质上不同。
ajax是通过XMLHttpRequest获取非本页内容,而jsonp核心实质上是通过动态添加script标签调用服务器提供的js脚本。
故jsonp方式只是形式和json相似,本质不同,无法使用async参数。解决方式:
将要同步执行的jsonp代码块写在执行成功的success方法中。
$.ajax({ url : 'xxx', data : { xxx : xxx, xxx : xxx }, dataType : 'jsonp', jsonpCallback : 'callback', success : function (data) { //do something; $.ajax({ url : 'xxx', data : { xxx : xxx, xxx : xxx }, dataType : 'jsonp', jsonpCallback : 'callback', success : function (data) { //do something; } }); }});
0 1
- 关于jsonp的同步问题
- 关于JSONP的问题
- 关于发送jsonp请求的问题
- 关于JSONP的理解
- 关于jsonp的理解
- 关于jsonp的理解
- 关于JSONP的理解
- 关于前端开发的跨域问题以及解决方法jsonp
- 关于AJAX和JSONP的跨域问题和原理
- 关于TP中的ajaxReturn添加jsonp参数的问题
- 关于 ConcurrentHashMap 的同步问题
- 关于jsonp的一些事!!!
- 关于Ajax跨域问题之JSONP
- 关于CPU与GPU的同步问题
- 关于线程和进程的同步问题
- 关于线程和进程的同步问题
- 关于DWR的同步和异步问题!
- 关于java socke同步的问题
- ios常用数组的解析
- Codeforces 707D.Persistent Bookcase(离线算法,dfs树,好题!)
- Java虚拟机学习 - 类加载机制
- Redis Cluster 3.0.5 集群实战
- Linux多线程编程
- 关于jsonp的同步问题
- Shader floor,ceil,degrees,fmod,round,saturate
- 关于springMVC配置问题
- C++11多线程编程
- leetcode 14. Longest Common Prefix
- php 判断数组中key值是否存在
- 用递归打印数字
- 20.Linux:网络编程(TCP协议-简单版本):client和server(原创)
- Protobuff unity3d 工具链