论坛首页 Web前端技术论坛

原来jsonp这么实现啊

浏览 7572 次
精华帖 (2) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (1)
作者 正文
   发表时间:2011-09-30  
function loginRequest(jsonp){
rnd = getRnd();
c_url = "http://reg.163.com/services/httpLoginExchgKey?rnd="+rnd;
c_url += "&jsonp="+jsonp;
fGetJson(c_url);
}

function getRnd(){ 
//var uid = $("idInput").value + "@163.com";
var timestamp = new Date().getTime();
//var rnd = base64encode(utf16to8(uid + "\n" + timestamp));
var rnd = base64encode(utf16to8("\n" + timestamp));
return rnd;
}

function fGetJson(url){
var oHead = document.getElementsByTagName("HEAD")[0] || document.documentElement;
var sForJson = document.createElement("script"); 
oHead.insertBefore( sForJson, oHead.firstChild );
//sForJson.setAttribute("charset", "gb2312"); 
sForJson.setAttribute("type", "text/javascript");
sForJson.setAttribute("src", url);
}

 

但是有个疑惑 jsonp 不能异步么? 难不成只能在IE上 jsonp 能实现异步么?

   发表时间:2011-09-30  
jsonp本身不就是异步的吗?创建完script节点后,并不会立即下载完成。
不太懂你说的异步是什么意思
0 请登录后投票
   发表时间:2011-10-02  
json只是一种数据交换格式,和异步同步有什么关系
0 请登录后投票
   发表时间:2011-10-04  
jsonp就是在window下添加一个方法,主要是为了跨域访问。
比如叫jsonp1232434234,在后台返回数据的时候返回一段js代码。
叫jsonp1232334234(这里边放data)。
然后创建script标签,然后进行加载。执行这个方法,自然会跳到success方法里去。

方法是get。有所限制。

lz写的代码跟jsonp有啥关系?
0 请登录后投票
   发表时间:2011-10-05  
打开jquery源码,搜jsonp,就明白了
0 请登录后投票
   发表时间:2011-10-08  
json不就是一种文件格式,跟同步异步有啥关系?
0 请登录后投票
   发表时间:2011-10-09  
jsonp是格式化的 json么?
0 请登录后投票
   发表时间:2011-10-12  
jsonp其实就是为了解决ajax不能跨域的一个padding或者说tricky而已
0 请登录后投票
   发表时间:2011-10-12  
guilipan 写道
jsonp其实就是为了解决ajax不能跨域的一个padding或者说tricky而已


+1
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics