zoukankan      html  css  js  c++  java
  • $.getJSON()方法的 callback说明

    $.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对象。

  • 相关阅读:
    20200902
    20200808
    20200801
    20191017
    LeetCode #974. Subarray Sums Divisible by K 数组
    LeetCode #532. K-diff Pairs in an Array 数组 哈希 双指针
    LeetCode #234. Palindrome Linked List 链表 栈 链表逆置
    LeetCode #307. Range Sum Query
    LeetCode #45. Jump Game II 数组 贪心
    LeetCode #55. Jump Game 数组 贪心 线性DP 回溯
  • 原文地址:https://www.cnblogs.com/vertko/p/5889060.html
Copyright © 2011-2022 走看看