( ErrorTypeError: Failed to fetch ) 当我尝试从 react native 将值插入我的 Mysql 数据库(在线托管)时出错

Posted

技术标签:

【中文标题】( ErrorTypeError: Failed to fetch ) 当我尝试从 react native 将值插入我的 Mysql 数据库(在线托管)时出错【英文标题】:( ErrorTypeError: Failed to fetch ) Error when I try to insert values into my Mysql database ( hosted online ) from react native 【发布时间】:2021-03-22 17:09:47 【问题描述】:

大家好,当我尝试使用 API 从 react 本机 CLI 将值插入我的 mysql 数据库(在线托管)时,我遇到了一个错误。下面找到我的 Insert.js 文件代码和 test.php 文件。请帮助我理解至于为什么我会收到此错误,请提前谢谢。

错误->

插入.js 代码

import React,  Component  from "react";
import  View, Text, TextInput, StyleSheet, Button  from "react-native";
export default class StudentInsert extends Component 
  constructor(props) 
    super(props);
    this.state =  RollNo: "", StudentName: "", Course: "" ;
  

  InsertRecord = () => 
    var RollNo = this.state.RollNo;
    var StudentName = this.state.StudentName;
    var Course = this.state.Course;

    if (RollNo.length == 0 || StudentName.length == 0 || Course.length == 0) 
      alert("Please complete all the fields");
     else 
      var InsertAPIURL = 'https://app.wakilicloud.co.ke/config.php';
      var headers2 = 
        Accept: 'application/json',
        'Content-Type': 'application/json'
      ;
      var Data = 
        RollNo: 'RollNo',
        StudentName: 'StudentName',
        Course: 'Course'
      ;
      fetch(InsertAPIURL, 
        method: 'POST',
        headers: headers2,
        body: JSON.stringify(Data),
      )
        .then((response) => response.json())
        .then((response) => 
          alert(response[0].Message);
        )
        .catch((error) => 
          alert("Error" + error);
        );
    
  ;

  render() 
    return (
      <View style=styles.ViewStyle>
        <TextInput
          placeholder="RollNo"
          placeholderTextColor="pink"
          keyboardType="number"
          style=styles.txtStyle
          onChangeText=(RollNo) => this.setState( RollNo )
        />
        <TextInput
          placeholder="Student Name"
          placeholderTextColor="pink"
          style=styles.txtStyle
          onChangeText=(StudentName) => this.setState( StudentName )
        />
        <TextInput
          placeholder="Course"
          placeholderTextColor="pink"
          style=styles.txtStyle
          onChangeText=(Course) => this.setState( Course )
        />

        <Button title="Save" onPress=this.InsertRecord />
      </View>
    );
  


const styles = StyleSheet.create(
  ViewStyle: 
    flex: 1,
    padding: 20,
    marginTop: 10
  ,
  txtStyle: 
    borderBottomWidth: 1,
    borderBottomColor: "red",
    marginBottom: 20
  ,
);

test.php

谢谢

【问题讨论】:

【参考方案1】:
    您正在使用 http 请求。 React Native 需要 https 连接来发送请求。您可以将服务器切换到 https 或 read this link 以继续使用 http 请求(已弃用) 您的请求正文是多余的逗号,请在发送请求之前尝试将其删除。
var Data = 
    RollNo: 'RollNo',
    StudentName: 'StudentName',
    Course: 'Course', // => remove it
;

【讨论】:

您好,感谢您的回复,我已经完成了编辑并更新了上面的代码,但我仍然遇到同样的错误。您认为问题可能出在 test.php 文件上吗? .

以上是关于( ErrorTypeError: Failed to fetch ) 当我尝试从 react native 将值插入我的 Mysql 数据库(在线托管)时出错的主要内容,如果未能解决你的问题,请参考以下文章

错误类型错误:无法读取未定义的属性“匹配”

错误类型错误:无法读取未定义的属性“未读”

谷歌图表:错误类型错误:“c 未定义”

错误类型错误:无法读取未定义角度的属性“名称”

Angular 8:错误类型错误:无法读取未定义的属性“无效”

错误类型错误:this.route.params.flatMap 不是函数