为什么用uniapp的uni.request和axios在本机请求https时axios的会跨域
时间: 2024-02-27 08:55:30 浏览: 8
可能是因为Axios在浏览器中运行时,会默认设置`withCredentials`为`false`,而Uni-app中的`uni.request`则默认为`true`,因此在请求跨域资源时,Axios会被浏览器拦截,而Uni-app中的请求则不会被拦截。
你可以尝试在Axios中手动设置`withCredentials`为`true`来解决跨域问题。例如:
```
axios.defaults.withCredentials = true;
```
相关问题
我使用的是uni.request,不用axios
如果你在uni-app中使用uni.request发送URL-encoded请求,可以使用以下代码示例:
```javascript
uni.request({
url: '/api/your-url',
method: 'POST',
header: {
'content-type': 'application/x-www-form-urlencoded'
},
data: {
param1: 'value1',
param2: 'value2'
},
success: function (res) {
console.log(res);
},
fail: function (err) {
console.log(err);
}
});
```
这里的请求方法为 POST,URL 为 /api/your-url,请求头中指定了 content-type 为 application/x-www-form-urlencoded,请求体中传递了 param1 和 param2 参数。
wx.request与axios
wx.request与axios是两种常用的网络请求库,分别用于微信小程序和前端开发。
wx.request是微信小程序提供的原生网络请求方法,用于向服务端发送 HTTP 请求。它可以发送 GET、POST、PUT、DELETE等类型的请求,并支持设置请求头、请求参数、响应数据类型等。使用wx.request需要在小程序中引入wx.request的API,并按照文档提供的方式进行调用。
axios是一个基于Promise的HTTP客户端,用于浏览器和Node.js中发送HTTP请求。它可以在浏览器中发送GET、POST、PUT、DELETE等类型的请求,并支持设置请求头、请求参数、响应拦截等功能。使用axios需要在项目中引入axios库,并按照文档提供的方式进行调用。
两者在功能上类似,都是用于发送HTTP请求,但是适用于不同的开发环境。如果你是在微信小程序中开发,可以选择使用wx.request;如果你是在前端开发中,可以选择使用axios。