我遇到了通过JS应用程序(Cross Domain)传输JSON的问题,使用经典查询参数有点矫枉过正,如果你在原始JSON列表中有列表或列表,那么处理起来会很复杂与.....
如果JSON不太大,如果它在URL的限制范围内可以包含,我们可以用不同的方式来做这个.....(请参阅我的帖子的答案)
答案 0 :(得分:1)
将JSON转换为URL安全字符串:
var myJsonStr= JSON.stringify(myJson);
var myJsonURLSafe= encodeURIComponent(myJsonStr);
使用SINGLE参数将其传递到目标网址:
window.location.replace(window.location.protocol+'//'+window.location.host+'/mysite/#targetPage?myJson='+myJsonURLSafe);
在传输的另一端,在我们读取此参数后,我们将其转换回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;
}
获取JSON的函数:
getMyJsonData:function(){
var urlValue = this.getUrlVars()["myJson"];
var dataJSON = undefined;
if(urlValue){
var dataStr= decodeURIComponent(urlValue);
dataJSON = JSON.parse(dataStr);
}
return dataJSON;
}