我正在做一个关于React with Reflux的教程。
但是我在查询响应中获得了404。我认为已发送url
来获取数据。
当我对变量' url'执行console.log时我得到以下内容:
api.openweathermap.org/data/2.5/forecast?appid=4e26b7e43fe918dbc620bbf34456a9de&q=New York,us
但在“网络请求”选项卡中,我在“请求”中看到以下内容
Request URL:http://localhost:8080/api.openweathermap.org/data/2.5/forecast?appid=4e26b7e43fe918dbc620bbf34456a9de&q=New%20York,us
Request Method:GET
Status Code:404 Not Found
Remote Address:127.0.0.1:8080
如果我复制此地址并将其粘贴到地址栏中,我肯定没有得到回复,但如果从地址中删除localhost:8080
,我会从API中获得完美的回复。
为什么要添加localhost:8080
,如果错误,我该如何解决呢?
这是我创建的用于获取数据的Action。
行动:
import axios from 'axios';
const API_KEY = '4e26b7e43fe918dbc620bbf34456a9de';
const ROOT_URL = `api.openweathermap.org/data/2.5/forecast?appid=${API_KEY}`;
export const FETCH_WEATHER = 'FETCH_WEATHER';
export function fetchWeather(city) {
var url = `${ROOT_URL}&q=${city},us`;
const request = axios.get(url);
return {
type: FETCH_WEATHER,
payload: request
};
}
这有效,但有人可以解释为什么吗?
在url变量上,我手动添加了http://
,这导致网址请求不会前置http://localhost:8080
import axios from 'axios';
const API_KEY = '4e26b7e43fe918dbc620bbf34456a9de';
const ROOT_URL = `api.openweathermap.org/data/2.5/forecast?appid=${API_KEY}`;
export const FETCH_WEATHER = 'FETCH_WEATHER';
export function fetchWeather(city) {
var url = `http://${ROOT_URL}&q=${city},us`;
const request = axios.get(url);
return {
type: FETCH_WEATHER,
payload: request
};
}