$.getJSON()方法的 callback說明

來源:互聯網
上載者:User

標籤:

$.getJSON()方法跨域 去取得伺服器的json對象的時候,url的尾碼最後帶一個"callback=?"的參數作為成功的回呼函數;如:

 

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代碼  
  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)。

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

  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對象。

$.getJSON()方法的 callback說明

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.