无法在React Native中通过Axios发布到PHP服务器

时间:2019-11-29 06:36:09

标签: php reactjs react-native axios react-native-android

我无法将数据发布到PHP服务器。我正在使用Axios

我可以使用Postman成功发布,但是不能从我的React Native应用程序发布。

我在做什么错了?

<TouchableOpacity
  style={{ fontSize: 18, color: 'white' }}
  containerStyle={{
    padding: 8,
    marginLeft: 70,
    marginRight: 70,
    height: 40,
    borderRadius: 6,
    backgroundColor: 'mediumseagreen'
  }}
  onPress={() => {

    axios.post('url', {
      "Reason": this.state.newTodo,
      "BranchRef": this.props.branch,
      "AppointmentDate": this.props.date,
      "ToSeeRef": 369,
      "PatientRef": 63,
      "AppointmentTimeID": this.props.appointmentTime,
      "AppointmentPlatform": 2,
      "Completed": 0
    }, {
      "headers": {
      "Accept": 'application/json',
      'Content-Type': 'application/json',
    }
  }).then((response) => {
    console.log("reactNativeDemo", "response get 
                                      details:" + response.data);
  })
  .catch((error) => {
    console.log("axios error:", error);
  });
  }}
>

请参阅下面的错误消息

axios error: [Error: Request failed with status code 500]

3 个答案:

答案 0 :(得分:0)

https://postman-echo.com/-使用邮递员回声检查您的客户端或服务器是否存在问题。这可能是服务器问题,而不是您的问题:-/

答案 1 :(得分:0)

不要在渲染器中输入Axios函数,将其分隔为不同的函数,并且将“ url”变量定义为全局渲染器还是内部渲染器?

尝试:

postData = async () => {
 axios.post ('your url', {
   "Reason": this.state.newTodo,
   "BranchRef": this.props.branch,
   "AppointmentDate": this.props.date,
   "ToSeeRef": 369,
   "PatientRef": 63,
   "AppointmentTimeID": this.props.appointmentTime,
   "AppointmentPlatform": 2,
   "Completed": 0
 }, {
   "headers": {
     "Accept": 'application / json',
     'Content-Type': 'application / json',
   }
 }). then ((response) => {
   console.log ("reactNativeDemo", "response get
                                      details: "+ response.data);
 })
 .catch ((error) => {
   console.log ("axios error:", error);
 });
}

然后

onPress = {this.postData}

答案 2 :(得分:0)

检查我的php / webserver日志后,我能够通过更改应用程序上的日期格式来解决此问题。

我正在使用react-native-datepicker,并且日期格式与服务器期望的日期格式不同。

    <DatePicker
                    date={this.state.date}
                    mode="date"
                    format="YYYY-MM-DD"
                    confirmBtnText="Confirm"
                    cancelBtnText="Cancel"
                    customStyles={{
                        dateIcon: {
                            position: 'absolute',
                            left: 0,
                            top: 4,
                            marginLeft: 0
                        },
                        dateInput: {
                            marginLeft: 36,
                            borderWidth: 0,
                            right: 0,
                            color: "grey"
                        }
                    }}
                    onDateChange={(date) => { this.setState({ date: 
                    date }); }}
                />