【问题标题】:not able to post request from my react native app无法从我的反应本机应用程序发布请求
【发布时间】:2021-08-08 13:48:48
【问题描述】:

我已经创建了后端服务器并且它工作正常。我确实使用邮递员验证了它 所以我把它作为我的后端网址 http://localhost:5000 现在我想在我的数据库中存储一个电话号码。 但似乎我无法与我的后端服务器建立连接

这是我面临的错误

更新错误

我正在使用 axios

import axios from 'axios';


const instance = axios.create({
    baseURL: 'http://localhost:5000',
});

export default instance;

这就是我尝试发布数据的方式 当我尝试连接到我的服务器时导致错误从这条线看到 const resp = await lifeApi.post('/signup', { data });

import React, { useState, useEffect } from 'react';
import { TextInput, View, TouchableOpacity, Text } from 'react-native';
import { StyleSheet } from 'react-native';
import auth from '@react-native-firebase/auth';
import lifeApi from '../../api/life';

//const User = require('../../../New folder/aol-backend/src/models/User');

const VerifyOTP = ({ route: { params: { phoneNumber } }, navigation }) => {
    // If null, no SMS has been sent
    //const [confirm, setConfirm] = useState(true);
    const [otp, setOtp] = useState('');
    //const [otpArray, setOtpArray] = useState(['', '', '', '']);
    const [confirm, setConfirm] = useState(null);
    //const User = require('../../../../folder/src/models/User');
    useEffect(() => {
        signInWithPhoneNumber();
    }, []);

    async function signInWithPhoneNumber() {
        try {
            const confirmation = await auth().signInWithPhoneNumber(phoneNumber);
            setConfirm(confirmation);
        } catch (e) {
            alert(JSON.stringify(e));
        }
    }
//==========================this is where i am trying to post request ==================================================
    async function confirmCode() {
        try {
            const code = otp;
            const response = await confirm.confirm(code);

            //================
            const data = { phone: response.user._user.phoneNumber };
            console.log(JSON.stringify(data));
            try {
                const resp = await lifeApi.post('/signup', { data });
                console.log(resp);
            } catch (err) {
                console.log(err)
            }
            //================
            console.log(response.user._user.phoneNumber);
            navigation.navigate('Home');
        } catch (e) {
            alert(JSON.stringify(e));
        }
    }
//=============================================================================
    return (
        <View>
            <TextInput
                style={style.display}
                value={otp}
                onChangeText={text => setOtp(text)}
                keyboardType="number-pad"
            />
            <TouchableOpacity
                onPress={() => {
                    confirmCode();
                }}
            >
                <Text>
                    submit
                </Text>
            </TouchableOpacity>
        </View>
    );
}

const style = StyleSheet.create({
    display: {
        borderColor: 'black',
        borderWidth: 2,
    }
});
export default VerifyOTP;

/**
          *  if (response) {
             await new User({
                 phone: response.user._user.phoneNumber
             }).save();
          */

如果您需要有关我的问题的更多信息,请告诉 请帮忙...

【问题讨论】:

  • “网络错误”信息量不大。控制台中是否显示其他内容?也许是关于 CORS 的?
  • 嗨昆汀,我已经添加了我得到的所有错误日志,
  • 您需要打开一个实际的调试器,而不仅仅是查看暴露给 JavaScript 的消息。网络错误在传递到 JS 可以读取的 Error 对象中时,往往会对细节进行大量编辑,因为它们通常包含有关第三方网站的特权信息,这些信息不应暴露给在第一方网站上运行的 JS。

标签: node.js reactjs react-native react-router react-hooks


【解决方案1】:
  1. 运行服务器应用程序的本地计算机(笔记本电脑/台式机)和移动设备应连接到同一网络。

    • 将您的移动设备通过 Wi-Fi 连接到您的本地网络。
    • 将您的笔记本电脑也连接到同一网络。 (服务器在笔记本电脑上运行)
  2. 通过在终端中运行命令检查笔记本电脑的 IP (ifconfig/ipconfig)

  3. 在移动应用程序中设置上面的IP地址你要测试哪个应用程序。

     const instance = axios.create({baseURL: 'http://192.168.0.29:5000'}); //IP:Port number
    

【讨论】:

    猜你喜欢
    • 2017-08-19
    • 2020-09-28
    • 2020-05-31
    • 1970-01-01
    • 2017-03-09
    • 1970-01-01
    • 2021-05-10
    • 2021-09-24
    • 2021-03-30
    相关资源
    最近更新 更多