我在这里遗漏了一些东西.我正在努力让API调用工作.然后我将网址分开如下,它的工作原理 - 一次.之后它再也无法工作了.我发誓我没有改变什么.
你是如何在AXIOS中进行的?
错误信息是:
XMLHttpRequest无法加载 http://magicseaweed.com/api/W2Z26fXscpELi7nPB0svfqcGj9FtGO9e/forecast/?spot_id=228.请求的资源上不存在"Access-Control-Allow-Origin"标头.因此,不允许来源" http:// localhost:8080 "访问.
import axios from 'axios';
const ROOT_URL = `magicseaweed.com/api/W2Z26fXscpELi7nPB0svfqcGj9FtGO9e/forecast/`;
export const FETCH_WEATHER = 'FETCH_WEATHER';
export function fetchWeather() {
const url = `http://${ROOT_URL}?spot_id=228`;
const request = axios.get(url);
return {
type: FETCH_WEATHER,
payload: request
};
}
Run Code Online (Sandbox Code Playgroud)
我尝试过这个改进的GET,但无济于事
axios({
url: url ,
headers: {"Access-Control-Allow-Origin": "*"},
});
Run Code Online (Sandbox Code Playgroud)
看这里:
https://www.npmjs.com/package/magicseaweed
在底部,它说明了为什么他们的 API 包装器无法在浏览器中工作。这与无法在浏览器中进行 Ajax 调用的原因相同。
常问问题
我可以在浏览器中通过 browserify 使用此模块吗?
理论上是的,但 Magicseaweed API 目前不会在浏览器请求中发送 Access-Control-Allow-Origin 标头(如果您通过 cURL 重放请求,则会以某种方式发送标头)。
因此,如果 API 改变了该行为,该模块将与 browserify 一起使用。
您可以建立自己的代理服务器,也可以使用互联网上提供的免费代理服务器之一:
https://developer.yahoo.com/yql/
归档时间: |
|
查看次数: |
22805 次 |
最近记录: |