请求失败,状态代码为 404(React Native、Axios)
Request failed with status code 404 (React Native, Axios)
早上好。
我有这个API。
我正在尝试像这样在我的 React Native 项目中使用它:
// api.js
import axios from "axios";
const api = axios.create({
baseURL: "https//almodovar-98fa1-default-rtdb.firebaseio.com/",
});
// App.js
import api from "./services/api";
import Filmes from "./components/Filmes";
export default function App() {
const [filmes, setFilmes] = useState([]);
useEffect(() => {
async function loadFilmes() {
try {
const response = await api.get("/.json");
setFilmes(response.data);
console.log(response);
} catch (e) {
alert(e);
}
}
loadFilmes();
}, []);
return (
<View style={styles.container}>
<Text style={styles.textH1}>Almodovar Cult
Movie List</Text>
<FlatList
data={filmes}
keyExtractor={(item) => item.id}
renderItem={({ item }) => <Filmes data=
{item} />}
/>
</View>
);
}
// Filmes/index.js
import React from "react";
import { View, Text } from "react-native";
const Filmes = () => {
return (
<View>
<Text>...</Text>
</View>
);
};
export default Filmes;
但是“我收到这个错误(Expo web)错误:请求失败,状态代码为 404
我知道这个错误的意思是“找不到”。我做错了什么?
我试过了
const response = await api.get("/.json");
const newArr = [];
Object.values(response.data).map(key, (index) => {
newArr.push(response.data[key]);
});
setFilmes(newArr)
它没有用。
如果我尝试在 android 设备上通过 Expo 运行 这个应用程序,错误是 网络错误
我已经在使用这个 api here.
感谢您的宝贵时间。
尝试像这样更改您的 api.js 文件
import axios from "axios";
export default function Api(type, serviceUrl, params) {
const baseURL = "https//almodovar-98fa1-default-rtdb.firebaseio.com/";
let url = baseURL + serviceUrl;
axios.defaults.headers.common["Accept"] = "application/json";
axios.defaults.headers.common["Content-Type"] = "application/json";
switch (type) {
case "get":
return axios
.get(url, { params: params })
.then((response) => {
return response;
})
.catch((error) => {
return error;
});
case "post":
return axios
.post(url, { params: params })
.then((response) => {
return response;
})
.catch((error) => {
return error;
});
default:
break;
}
}
然后像这样从 App.js 调用 api
const response = await api("get",".json");
早上好。
我有这个API。
我正在尝试像这样在我的 React Native 项目中使用它:
// api.js
import axios from "axios";
const api = axios.create({
baseURL: "https//almodovar-98fa1-default-rtdb.firebaseio.com/",
});
// App.js
import api from "./services/api";
import Filmes from "./components/Filmes";
export default function App() {
const [filmes, setFilmes] = useState([]);
useEffect(() => {
async function loadFilmes() {
try {
const response = await api.get("/.json");
setFilmes(response.data);
console.log(response);
} catch (e) {
alert(e);
}
}
loadFilmes();
}, []);
return (
<View style={styles.container}>
<Text style={styles.textH1}>Almodovar Cult
Movie List</Text>
<FlatList
data={filmes}
keyExtractor={(item) => item.id}
renderItem={({ item }) => <Filmes data=
{item} />}
/>
</View>
);
}
// Filmes/index.js
import React from "react";
import { View, Text } from "react-native";
const Filmes = () => {
return (
<View>
<Text>...</Text>
</View>
);
};
export default Filmes;
但是“我收到这个错误(Expo web)错误:请求失败,状态代码为 404
我知道这个错误的意思是“找不到”。我做错了什么?
我试过了
const response = await api.get("/.json");
const newArr = [];
Object.values(response.data).map(key, (index) => {
newArr.push(response.data[key]);
});
setFilmes(newArr)
它没有用。
如果我尝试在 android 设备上通过 Expo 运行 这个应用程序,错误是 网络错误
我已经在使用这个 api here.
感谢您的宝贵时间。
尝试像这样更改您的 api.js 文件
import axios from "axios";
export default function Api(type, serviceUrl, params) {
const baseURL = "https//almodovar-98fa1-default-rtdb.firebaseio.com/";
let url = baseURL + serviceUrl;
axios.defaults.headers.common["Accept"] = "application/json";
axios.defaults.headers.common["Content-Type"] = "application/json";
switch (type) {
case "get":
return axios
.get(url, { params: params })
.then((response) => {
return response;
})
.catch((error) => {
return error;
});
case "post":
return axios
.post(url, { params: params })
.then((response) => {
return response;
})
.catch((error) => {
return error;
});
default:
break;
}
}
然后像这样从 App.js 调用 api
const response = await api("get",".json");