通过URL(跨域)的查询参数传递JSON

时间:2016-10-04 00:49:08

标签: jquery json url cross-domain

我遇到了通过JS应用程序(Cross Domain)传输JSON的问题,使用经典查询参数有点矫枉过正,如果你在原始JSON列表中有列表或列表,那么处理起来会很复杂与.....

如果JSON不太大,如果它在URL的限制范围内可以包含,我们可以用不同的方式来做这个.....(请参阅我的帖子的答案)

1 个答案:

答案 0 :(得分:1)

  1. 将JSON转换为URL安全字符串:

    var myJsonStr= JSON.stringify(myJson); var myJsonURLSafe= encodeURIComponent(myJsonStr);

  2. 使用SINGLE参数将其传递到目标网址:

    window.location.replace(window.location.protocol+'//'+window.location.host+'/mysite/#targetPage?myJson='+myJsonURLSafe);

  3. 在传输的另一端,在我们读取此参数后,我们将其转换回JSON:

    //function to read parameters
     getUrlVars: function () {
                    var vars = [], hash;
                    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
                    for (var i = 0; i < hashes.length; i++) {
                        hash = hashes[i].split('=');
                        vars.push(hash[0]);
                        vars[hash[0]] = hash[1];
                    }
                    return vars;
                }
    
  4. 获取JSON的函数:

         getMyJsonData:function(){
             var urlValue = this.getUrlVars()["myJson"];
             var dataJSON = undefined;
             if(urlValue){
                 var dataStr= decodeURIComponent(urlValue);
                 dataJSON = JSON.parse(dataStr);
             }
        return dataJSON;
        }