这是我通过axios post request检查Auth的方法
CheckAuth() {
let obj = {
username: 'axy@gmail.com',
password: 'zzxxz'
}
//oauth_credentials imported
let form_data = Object.assign(obj, oauth_credentials)
axios({
method: 'post',
url: routes.oauth_token,
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'Accept': 'application/json',
},
data: form_data
})
.then(res => {
console.log(res)
})
.catch(err => {
console.log(err)
})
}
我想发送post请求以获取令牌,但是当我尝试时,它在控制台中显示网络错误
Error: Network Error
at createError (createError.js:16)
at XMLHttpRequest.handleError (xhr.js:87)
at XMLHttpRequest.dispatchEvent (event-target.js:172)
at XMLHttpRequest.setReadyState (XMLHttpRequest.js:546)
at XMLHttpRequest.__didCompleteResponse (XMLHttpRequest.js:381)
at XMLHttpRequest.js:485
at RCTDeviceEventEmitter.emit (EventEmitter.js:181)
at MessageQueue.__callFunction (MessageQueue.js:306)
at MessageQueue.js:108
at MessageQueue.__guard (MessageQueue.js:269)
答案 0 :(得分:2)
如果您在Android 9上遇到此错误,则解决方法是在android:usesCleartextTraffic="true"
中添加AndroidManifest.xml
。
明文是任何未加密或打算加密的传输或存储的信息。
在使用http
而不是https
时,Android Pie将阻止您的请求,因为默认情况下,Android Pie中不允许明文通信。
答案 1 :(得分:1)
尝试使用emulator -avd your_avd_name -dns-server 8.8.8.8
运行模拟器
我的意思是确保您的仿真器具有互联网连接。
答案 2 :(得分:0)
您正在生成预检请求,因为标题中的content-type
为application/x-www-form-urlencoded
文档https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS
预检请求首先通过OPTIONS方法向另一个域上的资源发送HTTP请求,以确定实际请求是否可以安全发送。跨站点请求是这样预检的,因为它们可能会对用户数据产生影响。
您必须确保服务器可以管理OPTIONS请求以使其正常工作。或将其从您的请求中删除
答案 3 :(得分:0)
async getToken(username, password) {
//request server for token
try {
let credential = {
username: Constant.CLIENT_ID,
password: Constant.CLIENT_SECRET
};
//QueryString is a package
let data = QueryString.stringify({
username: username,
password: password,
grant_type: 'password'
});
//for ios url should be https and for android http
const requestURL = 'url';
const response = await axios.post(requestURL, data, {
auth: credential,
});
console.log(response.data);
} catch (error) {
if (error.response.status === 401) {
} else {
}
}
}
答案 4 :(得分:0)
尝试更改adb端口。写这个命令
adb reverse tcp:8880 tcp:8880; adb reverse tcp:8081 tcp:8081; adb reverse tcp:8881 tcp:8881
答案 5 :(得分:-2)
你进入我的命令提示符 (CMD) 或终端,然后输入 ipconfig 它显示我机器的 IP 地址
答案 6 :(得分:-3)
在您的网址中添加http://
。如果在本地主机上,请使用系统IP。