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