2016-09-04 8 views
6

私は自分のサイトの数学を行うためにwolframを照会し、その結果を表示しようとしています。私はCORSに問題があります。 マイコード:静的GithubページでのWolframAlphaリクエストの作成方法

var xmlHttp = new XMLHttpRequest(); 
xmlHttp.onreadystatechange = function() { 
    if (xmlHttp.readyState == 4 && xmlHttp.status == 200) 
    callback(xmlHttp.responseText); 
} 
xmlHttp.open("GET", "http://api.wolframalpha.com/v2/query?input="+theUrl+"&appid=", true); // true for asynchronous 
xmlHttp.send(null); 

マイエラー:

「クロスオリジン・リクエストブロックされた:同一生成元ポリシーがhttp://api.wolframalpha.com/v2/query?input=sqrt(100)&appid=でリモートリソースの読み込み許可しません(理由:CORSヘッダー「アクセス制御 - 許可 - 起源'欠けている)。

私は、動的なサイトで、私はちょうど

を.htaccessファイルする

Header set Access-Control-Allow-Origin "*" 

を追加することができることを理解するが、私は、静的なサイトでそれを行うするかどうかはわかりません。私はAllow-Access_originがgithubページに既に存在するはずだと読んだことがあります。

ここで第二の答え:ここCross-Origin Resource Sharing on GitHub Pages

第二の答え:Is there a way to enable CORS on Github pages?

+1

アクセス制御の許可元ヘッダーはサーバー側で設定する必要があります(この場合はwolframalpha)。あなたがwolframalphaを管理しない限り、あなたはおそらくそれを行うことはできません。 –

+0

これはhttp://stackoverflow.com/questions/16268930/wolfram-api-javascript-cross-origin-sharing-issueの複製です。奨励金を削除して質問を終了してください。 –

+0

@AndyRayその質問は無回答です。私が選択肢を求めているので、私は具体的に違いがあります –

答えて

2

それはあなたがcrossorigin.meを通るルートあなたのGETリクエストをできた小さなプロジェクトだ場合。それ以外の場合は、wolfram alphaへのリクエストをプロキシするサーバーを自分で実行し、Access-Control-Allow Originヘッダーを適切に設定する必要があります。これらのプロキシサーバーの1つをnow.shまたはherokuに無料でまたは安価に導入することもできます。私は同様の簡単なアプリケーションgithub-issue-filerを正しく設定し、POSTをgithubのAPIに再ルーティングします。

+0

私はもっと良い解決法が与えられなければcrossorigin.meを使用すると思います。なぜそれは "小さなプロジェクト"でなければならないのですか?ありがとう! –

+1

crossorigin.meのオーナーは無料でサイトを運営していますので、交通量が多い場合は寛大な虐待をしないでください:-) –

関連する問題