我现在已经尝试了许多小时,以便通过Nuxt向我的外部api发送简单的发布请求。
它可以从单独的节点实例]中正常工作,我可以根据需要使用以下命令进行POST和GET:
:const headers = { 'Content-Type': 'application/json', 'access-token': 'myTokenXYZ123' }; const data = { test: 'Hello!' }; const postSomething = () => { axios.post('https://myapidomain.com/api', data, { headers: headers }); }; postSomething();
还带有curl
curl -X POST -H 'access-token: myTokenXYZ123' -H 'Content-Type: application/json' -d '{ "test": "Hello!" }' https://myapidomain.com/api
到目前为止很好,现在我想在我的Nuxt项目中实现它。我必须首先设置一个http代理,就像在
nuxt.config.js
中所做的那样:
[...] modules: [ '@nuxtjs/axios', '@nuxtjs/proxy' ], proxy: { '/my-api/': { target: 'https://myapidomain.com/api', pathRewrite: {'^/my-api/': ''} }, }, axios: { proxy: true }, [...]
我非常有信心代理可以正常工作,因为我可以通过以下方法获取数据:
methods: { async getSomething() { let requested = await this.$axios.get('/my-api/', { headers: this.headers }); return requested.data; } }
但是无论我做什么,POST请求都不起作用。这是我尝试过的方法:
methods: { postSomething() { const data = { test: 'Hello!' }; this.$axios.post('/my-api/', data, { headers: { 'Content-Type': 'application/json', 'access-token': 'myTokenXYZ123' } }); } }
我尝试了各种不同的格式,例如像这样:
methods: { postSomething() { const headers = { 'Content-Type': 'application/json', 'access-token': 'myTokenXYZ123' }; const data = { test: 'Hello!' }; const options = { method: 'post', url: '/my-api/', data: data, transformRequest: [(data, headers) => { return data; }] }; this.$axios(options); } }
但是它似乎不起作用。请求正在运行,并在一段时间后中止,并在终端中出现以下错误:
ERROR [HPM] Error occurred while trying to proxy request from localhost:3000 to https://myapidomain.com/api (ECONNRESET) (https://nodejs.org/api/errors.html#errors_common_system_errors)
我已经尝试过的其他几件事:
本地运行API和Nuxt
使用在模板中作为nuxt模块导入的axios
来自构建版本和生产版本的请求
异步和同步方法
谢谢您的阅读。任何提示将不胜感激!
我现在已经尝试了许多小时,以便通过Nuxt向我的外部api发送简单的发布请求。它可以从单独的节点实例按预期工作,我可以根据需要使用以下命令进行POST和GET:...
希望您正在使用@nuxtjs/axios
模块,如果可以使用拦截器