提问人:Sushanth 提问时间:7/20/2023 更新时间:7/20/2023 访问量:34
尝试在 Expo 中连接到生产后端 URL 时出现网络错误(React Native)
Network Error when Trying to Connect to Production Backend URL in Expo (React Native)
问:
我正在使用 React Native 开发一个基本的 Expo 项目,并且我正在尝试连接到生产后端 URL。后端托管在生产服务器上,我想使用 XMLHttpRequest 执行 POST 请求。 但是我在下面遇到这个错误 错误 错误:网络请求失败
import React, { useEffect } from 'react';
import { View, Text } from 'react-native';
const Prod = () => {
const apiUrl = 'base_url';
const headers = {
LanguageCode: 'en-US',
subDomain: 'vamscom',
'Content-Type': 'application/json',
};
const body = {
productKey: 'productKey',
uniqueKey: 'uniqueKey',
};
useEffect(() => {
const fetchData = () => {
const xhr = new XMLHttpRequest();
xhr.open("POST", apiUrl, true);
// Set headers
for (const [key, value] of Object.entries(headers)) {
xhr.setRequestHeader(key, value);
}
xhr.onreadystatechange = () => {
if (xhr.readyState === XMLHttpRequest.DONE) {
if (xhr.status === 200) {
try {
const data = JSON.parse(xhr.responseText);
console.log("Response data:", data);
// Do something with the data here, as needed
} catch (error) {
console.error("Error parsing JSON:", error);
// Handle the error here, if needed
}
} else {
console.error("Network response was not ok");
// Handle the error here, if needed
}
}
};
xhr.onerror = (error) => {
console.error("Error:", error);
// Handle the error here, if needed
};
xhr.send(JSON.stringify(body));
};
// Call the function to make the API request
fetchData();
}, []);
return (
<View>
<Text>Testing the production API</Text>
</View>
);
};
export default Prod;
问题: 在我的 Expo 项目中尝试使用 XMLHttpRequest 向生产后端 URL 发出 POST 请求时,我遇到了“网络错误”。该错误的描述性不强,我不确定请求失败的原因。
预期行为: 我希望代码能够成功连接到后端 URL 并收到有效的响应。后端托管在生产服务器上,当我通过浏览器访问它时,它可以正常工作。
答:
0赞
Saviour Essien
7/20/2023
#1
我看到你正在使用 Fetch。你能用axios代替吗?此外,我看不到您的基本网址,因此我可以知道这是否是问题。
评论
0赞
Sushanth
7/20/2023
实际上,我也尝试过使用Axios,Xml和superagent方法,但似乎没有任何效果。相同的基本 url 在 postman 中也有效。我没有公开它,因为它是我们的公司 URL。
评论