V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
yantianqi
V2EX  ›  程序员

用 vue 写前端, Java 做后端

  •  
  •   yantianqi · Jun 10, 2017 · 14798 views
    This topic created in 3249 days ago, the information mentioned may be changed or developed.

    用 vue 写前端,java 写后端
    用 ajax 对接的时候怎么处理? vue 的整个构建环境在 java 的环境中?
    vue 单独出来访问不就是跨域了吗?
    开发过程中单独出来,构建后构建的放到 java 目录中,那样开发过程中 ajax 也是跨域啊? 谢谢大神们

    27 replies    2017-12-16 22:23:41 +08:00
    acrisliu
        2
    acrisliu  
       Jun 10, 2017 via Android
    spring boot 提供 restful API,vue 做页面数据渲染,前后分离。
    wwqgtxx
        3
    wwqgtxx  
       Jun 10, 2017 via iPhone   ❤️ 1
    前面放一个 nginx 分别反代一下不就可以避免跨域了么,vue 直接挂在 /上,java 挂在 /api 上
    isb
        4
    isb  
       Jun 10, 2017 via iPhone
    vue-cli 支持开发的时候直接代理过去。
    sulang
        5
    sulang  
       Jun 10, 2017
    我是用 vue+Django
    wly19960911
        6
    wly19960911  
       Jun 10, 2017
    1. cors
    2. 反代
    3. 关闭 chrome 的安全性设置开发,关键词,--disable-web-security

    我建议是第三个,因为另外两个都需要设置后台。
    changwei
        7
    changwei  
       Jun 10, 2017 via Android
    既然是前后端分离,那么带服务器也可以分离啊,前端已经是纯静态资源了,直接用 nginx 输出吧。
    TangMonk
        8
    TangMonk  
       Jun 10, 2017
    设置下 api 返回的 CORS 的 header 就行了,简单直接

    Access-Control-Allow-Origin: *

    详情请阅读: https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS
    u5f20u98de
        9
    u5f20u98de  
       Jun 10, 2017
    开发的时候跨域也没啥,就是在 nginx 上加几个 http 头而已。
    我是 Vue+Go,也是分别开发的。
    头直接加在代码里,真正发布的时候 node 编译好起个 http fileserver 然后把跨域代码去掉。
    Sapp
        10
    Sapp  
       Jun 10, 2017
    开发的时候直接架个 node 服务器,或者 vue-cli 自带的 proxy,直接就可以跨域,根本不需要设置,然后 build 直接生成静态文件。
    quickma
        11
    quickma  
       Jun 10, 2017
    nginx 就好
    ft234451532
        12
    ft234451532  
       Jun 10, 2017
    proxy
    ke1e
        13
    ke1e  
       Jun 11, 2017 via Android
    不喜欢浏览器渲染,所以我的方式是使用 freemarker 加 vue 的形式
    marsLeo
        14
    marsLeo  
       Jun 11, 2017
    @wly19960911 #6 不同意第三个方法,虽然可以用来调试,但不是开发方案;既然做前端页面开发,跨域问题处理就应该用前端方法,而不是修改客户端,这样做也不安全
    majiawei
        15
    majiawei  
       Jun 11, 2017
    webpack-dev-server 的 proxy 是一种解决方法
    wly19960911
        16
    wly19960911  
       Jun 11, 2017 via Android   ❤️ 1
    @marsLeo 哦,可能没有说清楚,我说开发过程中使用这个。对于没有表达好说个抱歉
    RangerWolf
        17
    RangerWolf  
       Jun 11, 2017
    非常推荐 docker。

    在 dockek build 的时候把 vue 的东西 build 放到一个固定的目录, 然后整个打包成 war 包即可

    我们的后端是 python,前端就是 vue 渲染的。 这种做法做起来也非常爽。 没有跨域的问题。
    66kanfengjing
        18
    66kanfengjing  
       Jun 11, 2017 via iPhone
    nginx 反向代理,配置很快。记得一句话就可以了
    workwonder
        19
    workwonder  
       Jun 11, 2017 via Android
    都是一家,配置好 cors 不就行了,早晚要配置的
    fumichael
        20
    fumichael  
       Jun 11, 2017
    开发时用 nginx 转发
    或者 vue-cli 里面配好了 http-proxy-middleware
    示例参考: https://github.com/hql123/vue-ruby-china/ 如下图


    开发完成打包放到 Java 项目里面,这样前后端都不需要修改。
    仅供参考,如有错误或建议,请指出,谢谢
    RainFinder
        21
    RainFinder  
       Jun 12, 2017
    @fumichael 重点是哪里?要怎么配置?
    RainFinder
        22
    RainFinder  
       Jun 12, 2017
    @wwqgtxx 具体怎么实现
    fumichael
        23
    fumichael  
       Jun 12, 2017
    @RainFinder 左边不是有个目录结构么,还有地址栏,2 个地方可以看到是哪个文件了呀。
    ppwangs
        24
    ppwangs  
       Jun 12, 2017
    要想兼容性好就 jsonp。
    notreami
        25
    notreami  
       Jul 29, 2017
    @RangerWolf Vue 路由怎么处理的?
    RangerWolf
        26
    RangerWolf  
       Jul 29, 2017
    @notreami sorry 前端并不是我做的 vue 这里把前端页面写好 我 npm build 之后就可以对接起来了。
    jack80342
        27
    jack80342  
       Dec 16, 2017
    最近翻译了 Spring Boot 最新的官方文档,https://www.gitbook.com/book/jack80342/spring-boot/details
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2553 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 69ms · UTC 12:58 · PVG 20:58 · LAX 05:58 · JFK 08:58
    ♥ Do have faith in what you're doing.