2015-11-23 22 views
7

私は基本的に、外部の安全なプロキシサーバーからの値を必要とするカスタムHTMLチャートを持っています。今、XHTTP GETリクエストで正しいデータを取得するために、JavaScriptを含むページの関連領域にHTMLブロックを挿入しています。安全なJavascriptのGETリクエスト

プロキシサーバーへのアクセスを私たちのC5サイトからの私たちのSSL(私たちが望むもの)に限定することを制限するまでは、すばらしく機能します。

これにより、HTMLとJavaScriptがC5ではなくクライアント側で実行されるため、チャートが正しい値を取得できなくなります。

私がする必要があるのは、SSL証明書を通過できるように、C5の内部でGETリクエストを移動することです。私はその価値を取り、それをグラフに戻す必要があります。

以下は、私が現在ページにドロップしているHTMLコードに基づく擬似コードです。

<!-- This is the actual HTML block that I'm creating. --> 
<div id="HTMLBlock455" class="HTMLBlock"> 
<div class="someCustomChart"> 

<!-- Here's the script currently running that gets the necessary data and calls the proper functions to populate the chart. --> 

<script type="text/javascript"> 

// Global Var to store updating value 
var amount = 0; 

// Open a new HTTP Request) 
var xhr = new XMLHttpRequest(); 
xhr.open("GET", "Some_ElasticSearch Server", true); 
xhr.onreadystatechange = function() { 
    if (xhr.readyState === 4) { 
    if (xhr.status === 200) { 
     var person = JSON.parse(xhr.responseText); 
     amount = person._source.age; // Grabs the person age 
     $('#chart_328').data('updateto', amount); //updates the above HTML data value 
      document.getElementById('chart_328_text').innerHTML = amount + '%'; 
    } else { 
     console.error(xhr.statusText); 
    } 
    } 
}; 
xhr.onerror = function (e) { 
console.error(xhr.statusText); 
}; 
xhr.send(null); 

// This function executes on page load and prepares the chart! 
$(document).ready(function() { 
    .... 
} 
+0

あなたは本質的にプロキシとしてそれを使用して、サーバー上で要求をバウンスできませんか? –

+1

ようこそSO @ sethmrtnへ。私は、あなたの質問を編集して、SOの要件を満たしています(私たちは質問にお礼を言いませんし、将来的にはそれらを再利用可能にしようとしています)。 –

+0

C5サイトとは何ですか、なぜGETリクエストを送信できませんか? CORSを実装していないのですか?ロードブロッキングとは何ですか? –

答えて

0

あなただけが到達したいバックエンドでCORSを有効にする別のドメインまたはプロトコルにAjaxリクエストを行うことができます。

もう1つのオプションがありますが、これがC5で利用可能かどうかわかりませんが、プロキシのパス要求を作成することです。この場合C5はあなたの要求に応じてプロキシとして行います。その後、フローは次のとおりです。

Ajax request to your C5 -> C5 proxies the request to the external resource -> C5 sends you back the result

私はCORSのアプローチを好むが、従来のブラウザでは、100%の互換性がなかったことを考慮に入れます。参照を参照してください:http://caniuse.com/#feat=cors