如何在静态Github页面上进行WolframAlpha请求?

8
我正在尝试查询Wolfram以执行一些与我的网站相关的数学运算,然后显示结果。我遇到了CORS问题。
我的代码:
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头 'Access-Control-Allow-Origin')。"

我知道在动态网站上可以添加以下内容:

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

转至 .htaccess 文件

但我不确定如何在静态网站上进行此操作。我已经阅读到 Allow-Access_origin 应该已经存在于 Github Pages 中。

第二个答案在这里:GitHub Pages 上的跨源资源共享

第二个答案在这里:有没有办法在 Github Pages 上启用 CORS?


1
Access-Control-Allow-Origin头必须在服务器端设置,即在这种情况下是wolframalpha。除非您管理wolframalpha,否则可能无法完成此操作。 - Stefan Hegny
这是 https://dev59.com/R3HYa4cB1Zd3GeqPMIK- 的副本。请移除悬赏并关闭该问题。 - Andy Ray
@AndyRay那个问题没有答案。我的问题特别不同,因为它询问替代方案。 - Seth Kitchen
1个回答

2

如果是小项目,你可以通过crossorigin.me路由你的get请求。否则,你需要自己运行一个服务器,代理请求到wolfram alpha,并正确设置Access-Control-Allow Origin头部。你甚至可以在now.sh或heroku上免费或廉价部署这些代理服务器。我有一个类似的简单应用程序github-issue-filer,可以正确设置头部并将POST重定向到github的API。


如果没有更好的解决方案,我想我会使用crossorigin.me。为什么这必须是一个“小项目”?谢谢! - Seth Kitchen
2
crossorigin.me 的所有者免费运营该站点,以示礼貌。因此,如果您有大量流量,请不要滥用他们的慷慨之心 :-) - Drew Schuster

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接