2016-10-04 3 views
0

Я столкнулся с проблемой передачи JSON поверх приложений JS (Cross Domain), чтобы использовать классический параметр запроса, является излишним, если у вас есть список или список в списке ваш оригинальный JSON, с ним будет сложно справиться .....Передача JSON через параметры запроса из URL-адреса (перекрестный домен)

Если JSON не слишком большой, если он находится под ограничением URL-адреса, он может использовать другой способ сделать это ..... (Пожалуйста, смотрите ответ на мой пост)

ответ

1
  1. Преобразование JSON в URL безопасной строки:

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

  2. Передача его на целевой URL с одним параметром:

    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; 
          } 
    

функция, чтобы получить JSON:

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

извините, я редактировал мой код, он должен быть dataJSON, который я сделал JSON.parse из dataStr, дает мин –

+0

есть также 'location.search' свойство, которое вы можете как получить и установить и манипулирование url в документе document.createElement ('a') 'предоставляет все эти свойства также – charlietfl

Смежные вопросы