$.getJSON()方法的 callback說明

$.getJSON()方法跨域 去取得服務器的json對象的時候,url的後綴最後帶一個"callback=?"的參數做爲成功的回調函數;如:javascript

 

Js代碼   收藏代碼
  1. var url = "${BIPJS}/intf/accountsOfRefuseEmail.jsp?act=add&siteId=${LANG.siteId}&accountId=${loginId}&callback=?";  
  2. $.getJSON(url, {} , function(data) {    
  3.             var code = data.code;    
  4.             if(code == 0){    
  5.                 $('#floatOne').myFadeIn();    
  6.             }    
  7.         });  

 

 

 此時返回的data是一個json對象;相應地,服務器返回字符串應該要這種樣式:java

 

 

Java代碼   收藏代碼
  1. String callback = T.stringValue(getRequestParams(request,"callback"),"");  
  2.   
  3. JSONObject jo = new JSONObject();  
  4.   
  5. // put key/value in jo  
  6.   
  7. out.print(callback + "(" + jo + ")");  

 

 

原理:Jquery在解析請求callback=?的時候,會自動生成一個callback=jsonp***的字符串,這個字符串jsonp***在成功回調的時候做爲一個方法,被Jquey自動執行,參數是一個json格式的字符串(這裏是data)。相應地;服務器返回的字符串要這種形式:jsonp***(JSONObject)。web

如:剛上面的url被Jquey解析成:json

  1. Request URL:
     
    http://localhost.pcauto.com.cn:12385/intf/accountsOfRefuseEmail.jsp?act=add&siteId=2&accountId=388&callback=jsonp1381976698163&_=1381976708919

 

服務器返回的字符串形式:跨域

jsonp1381976698163({"code":0,"msg":"增長用戶成功"})服務器

 

Jquery的回調方法jsonp1381976698163(jsonStr)就是要把字符串jsonStr轉換成josn對象,這裏就是轉換成data這個json對象jsp

相關文章
相關標籤/搜索