【发布时间】:2017-02-12 01:09:04
【问题描述】:
我遇到了通过 JS 应用程序(跨域)传输 JSON 的问题,使用经典查询参数有点矫枉过正,如果您在原始 JSON 的列表中有列表或列表,处理起来会过于复杂与.....
如果 JSON 不是太大,如果它在 URL 可以包含的限制下,我们可以使用不同的方式来做到这一点.....(请参阅我的帖子的答案)
【问题讨论】:
标签: jquery json url cross-domain
我遇到了通过 JS 应用程序(跨域)传输 JSON 的问题,使用经典查询参数有点矫枉过正,如果您在原始 JSON 的列表中有列表或列表,处理起来会过于复杂与.....
如果 JSON 不是太大,如果它在 URL 可以包含的限制下,我们可以使用不同的方式来做到这一点.....(请参阅我的帖子的答案)
【问题讨论】:
标签: jquery json url cross-domain
将 JSON 转换为 URL 安全字符串:
var myJsonStr= JSON.stringify(myJson);
var myJsonURLSafe= encodeURIComponent(myJsonStr);
使用 SINGLE 参数将其传递到您的目标 URL:
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;
}
【讨论】:
location.search 属性,您可以在document.createElement('a') 中获取和设置并操作一个url 也会公开所有这些属性