如何允许android 28 api及以上版本在react native中进行http通信

如何允许android 28 api及以上版本在react native中进行http通信,android,reactjs,react-native,Android,Reactjs,React Native,我目前正在开发react native,今天我遇到了使用api将数据插入数据库的问题。因此,现在,当我已经完成了axios post请求的设置时,我的调试器浏览器会显示此错误 注意:API是在我的本地主机上创建的 我用于开发的设备: <network-security-config> <domain-config cleartextTrafficPermitted="true"> <domain includeSubdomains="false">lo

我目前正在开发react native,今天我遇到了使用api将数据插入数据库的问题。因此,现在,当我已经完成了axios post请求的设置时,我的调试器浏览器会显示此错误

注意:API是在我的本地主机上创建的

我用于开发的设备:

<network-security-config>
<domain-config cleartextTrafficPermitted="true">
    <domain includeSubdomains="false">localhost</domain>
    <domain includeSubdomains="false">127.0.0.1</domain>
</domain-config>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

<uses-feature android:name="android.hardware.location.gps" />
<uses-feature android:name="android.hardware.location.network" />


<application android:networkSecurityConfig="@xml/network_security_config"
  android:name=".MainApplication"
  android:label="@string/app_name"
  android:icon="@mipmap/ic_launcher"
  android:roundIcon="@mipmap/ic_launcher_round"
  android:allowBackup="false"
  android:usesCleartextTraffic="true"
  android:theme="@style/AppTheme">
  <activity
    android:name=".MainActivity"
    android:label="@string/app_name"
    android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
    android:windowSoftInputMode="adjustResize">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
  </activity>
  <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
</application>
const data = new FormData();

    data.append('driver_id','1');
    data.append('driver_route_lat',this.state.currentLocation.latitude);
    data.append('driver_route_long',this.state.currentLocation.longitude);


    axios({
      method: 'POST',
      url: 'http://127.0.0.1:8000/api/update_driver_route_logs',
      data: data,
      headers: {
        'Accept': 'application/json',
        'Content-Type': 'application/json',
      },
    })
    .then((response) =>  {
      console.log(response.data)
    })
    .catch((error) =>  {
      console.log(error)
    });
  • 维梧V9
  • 奥利奥

我已经在stackoverflow中阅读了一些文档或帖子,我在那里尝试了一些建议,但我仍然在我的应用程序中遇到了这个错误

建议:

<network-security-config>
<domain-config cleartextTrafficPermitted="true">
    <domain includeSubdomains="false">localhost</domain>
    <domain includeSubdomains="false">127.0.0.1</domain>
</domain-config>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

<uses-feature android:name="android.hardware.location.gps" />
<uses-feature android:name="android.hardware.location.network" />


<application android:networkSecurityConfig="@xml/network_security_config"
  android:name=".MainApplication"
  android:label="@string/app_name"
  android:icon="@mipmap/ic_launcher"
  android:roundIcon="@mipmap/ic_launcher_round"
  android:allowBackup="false"
  android:usesCleartextTraffic="true"
  android:theme="@style/AppTheme">
  <activity
    android:name=".MainActivity"
    android:label="@string/app_name"
    android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
    android:windowSoftInputMode="adjustResize">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
  </activity>
  <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
</application>
const data = new FormData();

    data.append('driver_id','1');
    data.append('driver_route_lat',this.state.currentLocation.latitude);
    data.append('driver_route_long',this.state.currentLocation.longitude);


    axios({
      method: 'POST',
      url: 'http://127.0.0.1:8000/api/update_driver_route_logs',
      data: data,
      headers: {
        'Accept': 'application/json',
        'Content-Type': 'application/json',
      },
    })
    .then((response) =>  {
      console.log(response.data)
    })
    .catch((error) =>  {
      console.log(error)
    });
  • android:networkSecurityConfig=“@xml/network\u security\u config”
  • android:UseClearTextTraffic=“true”
  • 我也尝试了这个设置:

    <network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="false">localhost</domain>
        <domain includeSubdomains="false">127.0.0.1</domain>
    </domain-config>
    
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    
    <uses-feature android:name="android.hardware.location.gps" />
    <uses-feature android:name="android.hardware.location.network" />
    
    
    <application android:networkSecurityConfig="@xml/network_security_config"
      android:name=".MainApplication"
      android:label="@string/app_name"
      android:icon="@mipmap/ic_launcher"
      android:roundIcon="@mipmap/ic_launcher_round"
      android:allowBackup="false"
      android:usesCleartextTraffic="true"
      android:theme="@style/AppTheme">
      <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
        android:windowSoftInputMode="adjustResize">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
      </activity>
      <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
    </application>
    
    const data = new FormData();
    
        data.append('driver_id','1');
        data.append('driver_route_lat',this.state.currentLocation.latitude);
        data.append('driver_route_long',this.state.currentLocation.longitude);
    
    
        axios({
          method: 'POST',
          url: 'http://127.0.0.1:8000/api/update_driver_route_logs',
          data: data,
          headers: {
            'Accept': 'application/json',
            'Content-Type': 'application/json',
          },
        })
        .then((response) =>  {
          console.log(response.data)
        })
        .catch((error) =>  {
          console.log(error)
        });
    
    在我的postman中,api运行良好:

    <network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="false">localhost</domain>
        <domain includeSubdomains="false">127.0.0.1</domain>
    </domain-config>
    
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    
    <uses-feature android:name="android.hardware.location.gps" />
    <uses-feature android:name="android.hardware.location.network" />
    
    
    <application android:networkSecurityConfig="@xml/network_security_config"
      android:name=".MainApplication"
      android:label="@string/app_name"
      android:icon="@mipmap/ic_launcher"
      android:roundIcon="@mipmap/ic_launcher_round"
      android:allowBackup="false"
      android:usesCleartextTraffic="true"
      android:theme="@style/AppTheme">
      <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
        android:windowSoftInputMode="adjustResize">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
      </activity>
      <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
    </application>
    
    const data = new FormData();
    
        data.append('driver_id','1');
        data.append('driver_route_lat',this.state.currentLocation.latitude);
        data.append('driver_route_long',this.state.currentLocation.longitude);
    
    
        axios({
          method: 'POST',
          url: 'http://127.0.0.1:8000/api/update_driver_route_logs',
          data: data,
          headers: {
            'Accept': 'application/json',
            'Content-Type': 'application/json',
          },
        })
        .then((response) =>  {
          console.log(response.data)
        })
        .catch((error) =>  {
          console.log(error)
        });
    

    @SrikarReddy我试过你的建议,但还是错了。。。