2016-09-04 16 views
6

Я пытаюсь запросить вольфрам, чтобы сделать некоторую математику для моего сайта, а затем отобразить результат. У меня проблемы с CORS. Мой код:Как сделать запрос WolframAlpha на статические страницы Github?

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

Моя ошибка:

«Cross-Origin Request Заблокировано: The Same Origin Policy Запрещает чтение удаленного ресурса в http://api.wolframalpha.com/v2/query?input=sqrt(100)&appid= (Причина:. Заголовок CORS«Access-Control-Allow-Origin ' отсутствует)."

Я понимаю, что на динамическом сайте я мог бы просто добавить

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 должен быть установлен на стороне сервера, то есть wolframalpha. Вы не можете сделать это, если не будете управлять вольфрамальфом. –

+0

Это дубликат http://stackoverflow.com/questions/16268930/wolfram-api-javascript-cross-origin-sharing-issue. Удалите щедрость и закройте вопрос. –

+0

@ AndyRay, что вопрос не имеет ответа. Моя особенность отличается тем, что она запрашивает альтернативы. –

ответ

2

Если это небольшой проект, который вы могли бы маршрут ваши запросы пройти через crossorigin.me. В противном случае вам придется запускать сам сервер, который запрашивает прокси-сервер для wolfram alpha и правильно устанавливает заголовок заголовка Access-Control-Allow Origin. Вы даже можете развернуть один из этих прокси-серверов на now.sh или heroku бесплатно или дешево. У меня есть аналогичное простое приложение github-issue-filer, которое правильно устанавливает заголовок и перенаправляет POST в API github.

+0

Я думаю, что буду использовать crossorigin.me, если не будет найдено лучшего решения. Почему это должен быть «небольшой проект»? Благодаря! –

+1

Владелец crossorigin.me бесплатно запускает сайт в качестве вежливости, поэтому, если вы управляете тоннами трафика, было бы неплохо не злоупотреблять их щедростью :-) –