我试图从here中公开的API中获取一个简单的随机引用。它基本上想要一个没有任何授权的POST请求。我想使用XMLHttpRequests实现这一点。这是代码:
var xhr = new XMLHttpRequest();
var forismaticUrl = 'http://api.forismatic.com/api/1.0/';
var params = 'method=getQuote&format=json&lang=en';
xhr.withCredentials = true;
xhr.responseType = 'json';
xhr.open('POST', forismaticUrl, true);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.onload = function(response) {
console.log('helloooo', response);
console.log(this);
console.log(this.responseText);
};
xhr.send(params);
无论我尝试什么,我的XMLHttpRequests总是失败并出现错误:
XMLHttpRequest cannot load http://api.forismatic.com/api/1.0/. No 'Access-Control-Allow-Origin' header is present on the requested resource
我在这里做错了什么?任何人都可以帮助代码并向我展示使用forismatic API的XMLHttpRequest示例吗?谢谢你的帮助!
答案 0 :(得分:1)
你没有做错任何事。您的浏览器期望API服务支持CORS,但事实并非如此。您可以尝试turn off CORS on your browser来帮助调试,但您不应该那样去制作。
服务可能支持CORS的年轻和弱势兄弟JSONP。
如果没有,并且此API服务不愿意进行现代化,并且如果没有其他可用选项,则您需要在服务器端进行API调用。