0
我遇到了一个问题,要通过JS应用程序(跨域)传输JSON,使用经典查询参数有点矫枉过正,如果列表中有列表或列表您的原始JSON,它会过于复杂处理.....通过来自URL(跨域)的查询参数传递JSON
如果JSON不是太大,如果它是在一个URL可以包含的限制下,我们可以用不同的方式来做到这一点.....(请参阅我的文章的回答)
我遇到了一个问题,要通过JS应用程序(跨域)传输JSON,使用经典查询参数有点矫枉过正,如果列表中有列表或列表您的原始JSON,它会过于复杂处理.....通过来自URL(跨域)的查询参数传递JSON
如果JSON不是太大,如果它是在一个URL可以包含的限制下,我们可以用不同的方式来做到这一点.....(请参阅我的文章的回答)
转换的JSON到URL安全字符串:
var myJsonStr= JSON.stringify(myJson); var myJsonURLSafe= encodeURIComponent(myJsonStr);
与一个单一的参数传递给它在你的目标网址:
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;
}
对不起,我正在编辑我的代码,它应该是dataJSON,我从dataStr中做了JSON.parse,给出了一个分钟 –
还有一个'location.search'属性,您可以同时获取和设置和操作一个'document.createElement('a')中的url也暴露了所有这些属性 – charlietfl