2016-09-04 75 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頭「訪問控制允許來源' 失蹤)。」

據我所知,在一個動態的網站,我可以只添加

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

爲.htaccess

,但我不知道如何做到這一點的靜態站點。我讀過Allow-Access_origin應該已經存在於github頁面中。

第二個答案在這裏:Cross-Origin Resource Sharing on GitHub Pages

第二個答案在這裏:Is there a way to enable CORS on Github pages?

+1

Access-Control-Allow-Origin Header必須在服務器端設置,即在這種情況下爲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標頭。您甚至可以在now.sh或heroku上免費或便宜地部署這些代理服務器之一。我有一個類似的簡單應用程序github-issue-filer,它正確設置標題並將POST重新路由到github的API。

+0

我想我會使用crossorigin.me如果沒有更好的解決方案給出。爲什麼必須是一個「小項目」?謝謝! –

+1

crossorigin.me的所有者免費提供網站作爲禮節,所以如果您駕駛的交通量很大,請不要濫用他們的慷慨行爲:-) –

相關問題