我的项目中有这样一个简单的代码:
文件api.js
:
const axios = require('axios');
require('dotenv').config();
let apiUrl = process.env.API_URL;
const axiosApi = axios.create({
baseURL: apiUrl
})
axiosApi.interceptors.request.use(config => {
config.headers['Accept'] = 'application/json'
config.headers['X-Client'] = 'Crawl'
return config
})
const get = async (url) => {
return await
axiosApi
.get(url,{
crossDomain: true
})
.then(response => {
return response?.data
})
.catch(error => {
throw error
})
}
const post = async (url, data) => {
return await axiosApi
.post(url, Array.isArray(data) ? [...data] : { ...data })
.then(response => response?.data)
.catch(error => {
console.log("error")
})
}
module.exports = { get, post }
文件app.js
:
const api = require('./Api')
api.get('/users').then(data => console.log(data))
如果我使用curl https://jsonplaceholder.typicode.com/users
,我会看到数据。
但是当我使用node app.js
时,我得到了这个ERR_BAD_REQUEST
:
400普通HTTP请求已发送到HTTPS端口
我读过很多类似的问题,但它们都是关于Nginx或Apache或其他Web服务器的。我正在连接到一个公共API,因此它与此无关。
会有什么问题呢?我该怎么办?
编辑:我注意到这个问题发生在设置代理或使用v2ray时
但我不明白为什么node.js
会导致这个问题,但它与curl
正常工作
1条答案
按热度按时间2jcobegt1#
你试过简化代码并添加一些调试吗?
https://stackblitz.com/edit/node-9xhiqf?file=index.js