Fork me on GitHub

nuxt.js 本地开发跨域问题(Access-Control-Allow-Origin)及其解决方案

问题描述

现在 web 开发都是前后端分离的年代,前后端分离的好处我就不啰嗦了,进入问题 ==>>>
使用 nuxt.js 本地开发 Vue 项目时,ajax 请求时可能会遇到跨域问题,控制台具体报错形式如下:

1
Failed to load http://example.com/api/somethings.do: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access.

这就是因为跨域问题导致的结果。

于是鄙人写了一个解决 nuxtjs 本地开发跨域问题的 npm 包,具体安装及其使用方式如下:

Nuxt.js Proxy Module

参考资料请看 nuxtjs api
nodejs 中间件 http-proxy-middleware api

使用步骤:

一、 安装 @gauseen/nuxt-proxy 依赖资源

1
npm install --save-dev @gauseen/nuxt-proxy

二、 添加 @gauseen/nuxt-proxy 资源至 nuxt.config.js 文件的 modules 对象之下

举个栗子:

1
2
3
4
5
6
7
8
9
// nuxt.config.js

modules: [
// 请求代理配置,解决跨域
'@gauseen/nuxt-proxy',
],
proxyTable: {
'/api': { target: 'http://example.com', ws: false }
},

注:

1
2
3
/api   |—————— 每个接口特定标识字段 [String]
target |—————— 目标代理服务 [String]
ws |—————— 是否支持 websocket 代理 [Boolean]
  • 欢迎访问我的个人博客 攻城狮传送门
  • 未经作者允许,禁止转载,谢谢!
  • 欢迎留言、评论!
-------------我是有底线哒-------------