猿问
下载APP

前后端分离开发 跨域问题

我们现在有个二次开发的项目,要求前后端分离开发,前端我用webpack-dev-server本地服务,要请求java后台tomact下数据,我要处理跨域请求的问题,jsonp肯定是不行了,后台代码基本已经确认了,我想问如何让后台做的少更改的情况下,前端这边需要做什么配置来解决跨域问题。

想问一些关于前后端分离开发的问题。因为第一次开发有很多地方不清楚,上网查了很多资料现在似懂非懂,基本上就开发环境下的跨域问题是前端后后台一起解决,还是只用前端解决。(网上说是一起解决,但我后台的同事也没有接触过,他们以前都是javaweb项目,也不太懂),第二就是后期部署时前端和后台是不是分开部署服务器,可以部署在同一个服务器上吗。


JMYD
浏览 7746回答 5
5回答

牛奶老哥哥

后端代码,一点都不能改吗,如果能有个简单方法就是让后台在请求头设置Access-Control-Allow-Origin:*允许所有源访问。如果一点都不能我还知道一种方法有一些局限吧,就是需要 webpack-dev-server 做一个代理的转发。配置代码在 ./webpack.config.js 中。devServer: {      proxy: {      // 凡是 `/api` 开头的 http 请求,例如http://localhost:8080/api/1,都会被代理到 localhost:3000 上         '/api': {              target: '  //这里是服务器的地址              secure: false          }      },      // ...省略若干代码...  }参考http://www.imooc.com/article/15003望采纳!

林方清i

要么单独写jsonp的接口,要么后台设置cors。开发环境下,你可以使用webpack的代理,用你启动的node服务代理请求访问java的接口然后把结果返回给你,但是生产环境下必须要后端的配合,要么jsonp, 要么设置cors,前端是无法解决的!设置cors是改动成本最低的方式。

吃火锅不数签签

开发环境下既然你后台接口不想改,那就前端自己解决跨域啊。你dev-server可以配置proxy。也可以用fiddler这类工具来代理解决开发时的跨域。部署的话,如果前后端不分开,直接将前端代码扔tomcat。

拖鞋_

楼主没听过微服务吧有时间学习学习spring cloud 分布式 首先第一点就要后台放弃session  改成 redis缓存如果了解session 机制   用 H5的一些特写  和 redis 完全可以制作出来session机制你可以看看斗鱼  斗鱼的登录状态缓存30天 难道你不想了解怎么做的么关于你的跨域一般会由 微服务网关来控制

Caballarii

一起部署就行了,html和生成的js往后端一丢,只要能访问到html就行。但有很多细节要注意,如果前端用hash来跳转,那无所谓,如果是正常的链接跳转,那就要后端把前端路由的请求转发回html,并且后端请求最好以api/v1这样的形式来和前端路由区分开来
打开App,查看更多内容
随时随地看视频慕课网APP
我要回答