2016-10-04 10 views
0

JSONをJSアプリケーション(クロスドメイン)経由で送信する問題が発生しました。古典的なクエリパラメータを使用するには、リスト内のリストまたはリストあなたの元のJSON、それは対処するために複雑になるでしょう.....URL(クロスドメイン)からクエリパラメータ経由でJSONを渡す

JSONが大きすぎない場合は、URLの制限の下に含まれている場合は、これを行うために別の方法を使用することができます.....(私のポストの答えを参照してください)

答えて

1
  1. URLセーフな文字列にJSONを変換します

    SINGLEパラメータを使用して、ターゲットURLにそれを渡すvar myJsonStr= JSON.stringify(myJson); var myJsonURLSafe= encodeURIComponent(myJsonStr);

  2. :私たちは、このパラメータを読んだ後、私たちは戻っJSONに変換し、トランスミッションの反対側に

    window.location.replace(window.location.protocol+'//'+window.location.host+'/mysite/#targetPage?myJson='+myJsonURLSafe);

  3. //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

申し訳ありませんが、私はコードを編集していましたが、dataStrのJSON.parseをdataJSONにする必要があります。 –

+0

には、取得と設定の両方を行える「location.search」プロパティもあります。 'document.createElement( 'a')'のurlはこれらのプロパティもすべて公開します – charlietfl

関連する問題