nextjs-react,解决前端跨域问题
方法有很多这里只列举两例(修改nextconfig文件和使用express+http中间件)跨域解决问题
本地开发dev环境 【nextjs-react,解决前端跨域问题】1、 next.config.js文件 重写地址(实现跨域)
module.exports = {async rewrites() {
return [
//接口请求 前缀带上/api-text/
{ source: '/api-text/:path*', destination: `http://127.0.0.1:8080/:path*` }, ]
},
}
2、 express http-proxy-middleware 中间件解决
- 根目录下创建server.js文件
// server.js const express = require('express') const next = require('next') const{ createProxyMiddleware }= require('http-proxy-middleware') const devProxy = { '/api-text': { target: 'http://127.0.0.1:8080/', // 端口自己配置合适的 pathRewrite: { '^/api-text': '/' }, changeOrigin: true }, '/api': { target: 'http://127.0.0.1:3000/', // 端口自己配置合适的 pathRewrite: { '^/api': '/' }, changeOrigin: true } }const port = parseInt(process.env.PORT, 10) || 3000 const dev = process.env.NODE_ENV !== 'production' const app = next({ dev }) const handle = app.getRequestHandler()app.prepare() .then(() => { const server = express()if (dev && devProxy) { Object.keys(devProxy).forEach(function(context) { server.use(createProxyMiddleware(context, devProxy[context])) }) }server.all('*', (req, res) => { handle(req, res) })server.listen(port, err => { if (err) { throw err } console.log(`> Ready on http://localhost:${port}`) }) }) .catch(err => { console.log(err) })
- 修改package.json,添加一则内容
"scripts": {
"dev:node-middleware": "node server.js",
},
线上配置nginx服务器转发接口实现跨域即可
推荐阅读
- 前端|超火的炫酷告白源码(HTML+CSS),前端表白源码,520表白,七夕情人节专属源码--文字开场白+相册旋转+浪漫3D樱花樱花雨
- 前端|RuoYi-Cloud 若依微服务版启动教程(保姆级)
- 前端|Vue 学习笔记(一)
- 前端|JavaScript基础大总结
- 前端|npm ERR code ENOENT npm ERR syscall open npm ERR path CUserspackage.jsonnpm ERR code ENOENT n
- 前端|一个简单炫酷的前端小项目(html+css+js)----3D图片演示
- input输入框仅支持输入数字及两位小数点解决
- 解决mybatis中resultType取出数据顺序不一致的问题
- RC级别下MySQL死锁问题的解决
- 低成本低功耗蓝牙芯片MS1656专用于智能窗帘应用解决方案