先来看一段jsonp代码:
$.ajax({ url : "http://isspre.cnsuning.com/iss/turingShelf/ajaxIsNormalLevel_ProductObj.lazyLoadSmart.html", async : false, cache : false, type : "GET", dataType : "jsonp", jsonp : ProductObj.lazyLoadSmart, error : function(XMLHttpRequest, textStatus, errorThrown) { console.log(textStatus); }, success : function(data) { console.log(data); } });
(ProductObj.lazyLoadSmart是回调函数,此处省略)
这段代码在Firefox 40以下版本里执行时,请求状态一直为1(参考:http://guwq2014.iteye.com/blog/2271926) ,请求一直没有发送出去(注意:是请求根本没有发送出去,更不用说有返回了)。为什么会这样呢?
原来这段jsonp代码书写不规范,导致低版本浏览器对这段代码的兼容性有问题。
规范的写法是:
$.ajax({ url : "http://isspre.cnsuning.com/iss/turingShelf/ajaxIsNormalLevel_ProductObj.lazyLoadSmart.html", async : false, cache : false, type : "GET", dataType : "jsonp", timeout : 5000, jsonp : "jsonpcallback", jsonpCallback : "ProductObj.lazyLoadSmart", error : function(XMLHttpRequest, textStatus, errorThrown) { console.log(textStatus); }, success : function(data) { console.log(data); }, complete:function(){ } });
注意jsonp和jsonpcallback部分的写法,特别是jsonp和jsonpcallback参数的值必须加引号,否则执行会有问题。
相关推荐
1、地址...演示跨域问题以及跨子域名解决方法 2、地址http://a.test.com:8888/testAjaxCross/public/jsonp.do 演示jsonp解决跨域问题的三种方案jsonp、$getJSON、$ajax等
前端使用jquery,datatype采用jsonp,服务端采用C#编写的webService
jsonp的原理 jsonp的使用,使用jsonp解决js跨域问题!
JSONP简单调用实例。ASP.NET和纯HTML。jQuery的$.ajax的调用!jsonP说白了,就是在json字符串外面包上一个:参数名称+左右括弧!只是包了个:jsonpCallback() 而已! 相关文章:...
JSONP 实例
Jsonp和java操作
后台php设置jsonp
解决跨域封装的jsonp
JSONP(JSON with Padding)是JSON的一种“使用模式”,可用于解决主流浏览器的跨域数据访问的问题。由于同源策略,一般来说位于 server1.example.com 的网页无法与不是 server1.example.com的服务器沟通,而 HTML 的...
总算理解jsonp的应用了,以前只知道jsonp但是还是不会再代码中应用,看了这个以后突然恍然大悟,妈妈再也不用担心我学不会jsonp了(/坏笑,以上纯属虚构)
jsonp XML解析
使用jsonp跨域获取json数据。Ajax获取JAVA服务器json数据。
纯servlet实现JSONP 非常简单易懂的一个例子。
Jquery easyui+Jsonp+asp.net+翻页 事件版
在页面a中由前端发送一个jsonp请求到客户方,得到一个token值 前端得到token值后向自己后端发送一个请求,后端根据token去redis(token的值就是redis里的key)里取值(key=token的值,value=用户信息等)判断用户是否已...
ajax jsonp跨域传参,里面有源码,不过写在txt中了,很适合调用别人的接口
该资源为ASP.NET网站开发技术中使用Ajax进行跨域请求时利用JSONP方案解决浏览器同源策略限制的源码,比较简单,仅供参考
交接jsonp,轻松实现跨域方法的调用,很值得学习的东西
自己封装jsonp.js
使用Jquery中的Aajx方法利用Jsonp方式访问豆瓣公开的api接口,跨域获取书籍信息。