在React Native(Android)中使用Fetch无法发出POST请求

时间:2016-12-17 18:44:41

标签: javascript android react-native fetch

我是React本地人的新手,我的POST请求遇到了很多问题,并在互联网上进行了大量的研究以使其工作,但是我一直都在“未定义”。

这是index.android.js中的所有代码:

import React, { Component } from 'react';
import { AppRegistry, Alert, StyleSheet, View, TextInput, TouchableHighlight, Text } from 'react-native';   

var DroverDaniel = React.createClass({

  _onPressButtonPOST: function() {

    let myBody = JSON.stringify({"partner[email]": "daniel.smith@gmail.com", "partner[password]": "mypassword"});

    let myInit = { method: 'POST', cache: 'default', body: myBody };

    fetch("https://drover-test.herokuapp.com/app_partners/sign_in", myInit).then(function(response) {
      return response.json();
    }).then(function(j) {    
      Alert.alert("POST Response", "Response Body -> " + j.api_token)
      console.log(j);
    }).catch(function(err) {
    console.log(err);
    // Alert.alert("Response Body -> " +err);
    });

  },



  render: function() {
    return (
      <View style={styles.container}>      
      <TouchableHighlight onPress={this._onPressButtonPOST} style={styles.button}>
      <Text>POST</Text>
      </TouchableHighlight>
      </View>
      );
  },

});

  var styles = StyleSheet.create({
   container: {
     flex: 1,
     flexDirection: 'row',
     justifyContent: 'center',
     alignItems: 'center',
     backgroundColor: '#F5FCFF',
   },
   button: {
     backgroundColor: '#eeeeee',
     padding: 10,
     marginRight: 5,
     marginLeft: 5,
   }
 });

AppRegistry.registerComponent('DroverDaniel', () => DroverDaniel);

我已经在Postman中测试了API,这很有效 - 这是我应该为这个简单的登录POST请求获得的:

{
  "id": 40,
  "email": "daniel@some-email.com",
  "first_name": "Daniel",
  "last_name": "Smith",
  "api_token": "ffZWYC8Z4zD3-c4y9mT3"
}

不幸的是.catch在“控制台”中没有显示任何错误 - 我假设我正在运行终端服务器。并且尝试在“警报”框中输出错误也不会产生任何结果。

我整天都被困在这一天,所以任何帮助都会非常感激!

0 个答案:

没有答案