我正在尝试在react-native应用程序中使用axios从我的Wordpress网站获取令牌。
不幸的是,我总是遇到网络错误。
我正在通过浏览主页检查设备上的SSL设置。关于SSL证书,我没有收到任何错误消息-因此,我假设它可以正常工作。我正在使用自己的根CA颁发的个人证书。我还在Windows和设备上都将根CA安装为受信任的根。
我还通过在Chrome中发布带有Servicstate插件的发布请求,检查了CORS设置以及URL的常规功能。通常,URL运行正常,根据Servistate,我从服务器收到以下标头:
access-control-allow-credentials true
access-control-allow-headers Authorization, X-WP-Nonce, Content-Disposition, Content-MD5, Content-Type
access-control-allow-methods OPTIONS, GET, POST, PUT, PATCH, DELETE
access-control-allow-origin *
access-control-expose-headers X-WP-Total, X-WP-TotalPages, Link
我认为“来源”是最重要的CORS设置,应允许我的应用获取令牌。
由于我不明白自己在做什么错,这是我的示例代码:
app.js:
import * as React from "react";
import { View, Text } from "react-native";
import axios from './axios_wp';
export default function App() {
var userData= {
username: 'Username',
password: 'password'
};
var response = axios
.post('/wp-json/jwt-auth/v1/token', userData, {
transformRequest: (data, headers) => {
//delete headers.common['Content-Type'];
//delete headers.common['Accept'];
},
headers: {'Accept': '*/*', 'Content-Type': 'multipart/form-data; boundary=----WebKitFormBoundarympjcGEkC776xQxM8'},
})
.then((response) => {
// Do something with the response
console.log('axios.resonse: ' + JSON.stringify(response));
})
.catch((err) => {
console.log('axios: error: ' + JSON.stringify(err.config));
console.log('\r');
console.log(JSON.stringify(err));
});
return (
<View
style={{
flex: 1,
justifyContent: "center",
alignItems: "center",
}}
>
<Text>Universal React with Expo</Text>
</View>
);
}
axios_wp.js:
import axios from 'axios';
const axiosInstance = axios.create({
//baseURL: process.env.REACT_APP_WORDPRESS_URL
baseURL: 'https://wp-dev01.fire.fly',
// headers: {'Content-Type': ''},
});
export default axiosInstance;
如您所见,我使用不同的标题打了Arround,但没用。
有谁可以帮助解决这个问题?
谢谢! 斯蒂芬