Javascript 当iOS工作时,所有请求都会失败 在调试Android时,所有网络请求都会突然失败,但在iOS中,它可以正常工作。
Javascript 当iOS工作时,所有请求都会失败 在调试Android时,所有网络请求都会突然失败,但在iOS中,它可以正常工作。,javascript,android,react-native,connection,react-native-android,Javascript,Android,React Native,Connection,React Native Android,curl--data”电子邮件=test@gmail.com" https://unblnd.com/api/login正常工作并提供预期结果。使用http,请求返回永久移动,但由于本地连接也不起作用,这不应该是问题所在吗 它在本地主机和远程API URL中的android物理设备和android模拟器上都失败 $react native info 配置文件 我们制作了这个fetchApi函数,它负责get和post方法 尝试了什么 android:usesCleartextTraffic=“
curl--data”电子邮件=test@gmail.com" https://unblnd.com/api/login
正常工作并提供预期结果。使用http,请求返回永久移动,但由于本地连接也不起作用,这不应该是问题所在吗
它在本地主机和远程API URL中的android物理设备和android模拟器上都失败
$react native info
配置文件
我们制作了这个fetchApi函数,它负责get和post方法
尝试了什么
已添加到AndroidManifest.xml李>android:usesCleartextTraffic=“true”
- 已添加文件res/xml/network\u security\u config.xml李>
- 使用工具:
这个问题也有类似的主题,但将黑客添加到AndroidManifest中似乎没有帮助。嗨,我面临着同样的问题。您找到解决方案了吗?我们没有一个清晰的解决方案,但它帮助删除了
FormData
,只使用了JSON.stringify(body)
。在标题中始终使用'Content-Type':'application/json'
也有帮助。这在生产环境中有帮助,但在本地主机中没有。这些建议对你有帮助吗?嗨,我也面临同样的问题。您找到解决方案了吗?我们没有一个清晰的解决方案,但它帮助删除了FormData
,只使用了JSON.stringify(body)
。在标题中始终使用'Content-Type':'application/json'
也有帮助。这在生产环境中有帮助,但在本地主机中没有。这些建议对你有帮助吗?
info Fetching system and libraries information...
...
npmPackages:
react: 16.9.0 => 16.9.0
react-native: 0.61.5 => 0.61.5
npmGlobalPackages:
react-native-cli: 2.0.1
react-native-git-upgrade: 0.2.7
if (__DEV__) {
config = {
clientId: '***',
url: 'http://192.168.0.***:8000/api',
};
} else {
config = {
clientId: '***',
url: 'http://unblnd.com/api',
};
}
import apiConfig from './config';
import * as authSelectors from 'app/services/auth/selectors';
export const fetchApi = async (endPoint, method = 'get', body = {}) => {
console.log(`start fetchApi ${method} ${endPoint}`);
const accessToken = authSelectors.get().tokens.access.value;
const accessType = authSelectors.get().tokens.access.type;
let headers = {
...(accessToken
? {
Authorization: `${accessType} ${accessToken}`,
Accept: 'application/json',
}
: {
'Content-Type': 'application/json',
}),
};
let response;
if (method == 'get' || Object.keys(body) == 0) {
response = await fetch(`${apiConfig.url}${endPoint}`, {
method: method,
headers: headers,
});
} else {
var formData = new FormData();
Object.keys(body).forEach(type => {
if (typeof body[type] === 'object') {
body[type] = JSON.stringify(body[type]);
}
formData.append(type, body[type]);
});
console.log('sending data: ' + JSON.stringify(formData));
response = await fetch(`${apiConfig.url}${endPoint}`, {
method: method,
headers: headers,
body: formData,
});
}
console.log('fetch response: ' + JSON.stringify(response));
let responseJsonData = await response.json();
console.log('fetch response json: ' + JSON.stringify(responseJsonData));
return responseJsonData;
};
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.unblnd">
<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-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<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:theme="@style/AppTheme"
android:usesCleartextTraffic="true"
tools:targetApi="23">
<uses-library
android:name="org.apache.http.legacy"
android:required="false" />
<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" />
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
</application>
</manifest>