V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
flyzero
V2EX  ›  API

前后端分离 内部 api 调用的问题

  •  
  •   flyzero · 2018-08-18 22:33:37 +08:00 · 3622 次点击
    这是一个创建于 2288 天前的主题,其中的信息可能已经有所发展或是发生改变。

    情况是这样的: 前端静态资源 和 后台在同一服务器上( http),前端调用后台 api 接口请求数据,之前一直是本地调用试试的,今天放到外部服务器上(用 https 了),改成 https://120.0.0.1/api/xxxxx,调用失败,请问这种该怎么写?

    14 条回复    2018-08-19 13:24:58 +08:00
    Torpedo
        1
    Torpedo  
       2018-08-18 23:05:44 +08:00 via Android
    跨域不?
    qinxi
        2
    qinxi  
       2018-08-18 23:12:24 +08:00 via Android   ❤️ 1
    ???还有这种操作?你的意思是你用 Ajax 请求的地址是 127.0.0.1 ?先不说你 https 配置问题。。。
    请求的地址应该是用户浏览器可访问的 host:端口,127 这个 IP 是本机 IP,也就是你让用户访问自己的电脑?
    再来说 HTTPS 的问题,我觉得你应该没有针对 IP 的 ssl 证书吧?那你就用你域名。没解决跨域就用你网页所在域(包括协议 host 端口)
    还有一点需要注意是 HTTPS 的页面环境不能使用 HTTP 请求获取脚本和 Ajax,图片视频倒是可以
    qinxi
        3
    qinxi  
       2018-08-18 23:18:17 +08:00 via Android   ❤️ 1
    强烈建议楼主系统的学习一下,既然都使用 HTTPS 了,我觉得应该不是初学者了吧。
    Hilong
        4
    Hilong  
       2018-08-19 00:27:59 +08:00 via Android
    额⊙∀⊙!如果在同一台机器上,你可以把 127.0.0.1 去掉,直接访问 /api/xxx
    yunye
        5
    yunye  
       2018-08-19 00:33:50 +08:00
    有点尴尬了
    Tink
        6
    Tink  
       2018-08-19 01:06:39 +08:00 via iPhone
    @qinxi #2 明明是 120
    caola
        7
    caola  
       2018-08-19 01:19:46 +08:00   ❤️ 1
    @flyzero 先不管你 https 的 IP 120.0.0.1 能否正常访问, 如果请求不在同一域名下,你得了解一下 CORS
    night98
        8
    night98  
       2018-08-19 04:40:25 +08:00 via Android
    页面 url 应为 /api/user
    你这个基础知识还需要再学习一下。。。
    Athrob
        9
    Athrob  
       2018-08-19 07:46:38 +08:00 via iPhone   ❤️ 1
    1. 地址不对,120.0.0.1 是举例子还是就这么写的???
    2. 证书问题,https 证书必须和域名匹配,纯 IP 好像不能正常申请 https 证书吧
    3. 跨域问题
    最后,开发者控制台看看错误输出
    qinxi
        10
    qinxi  
       2018-08-19 08:37:56 +08:00 via Android   ❤️ 1
    @Tink 好尴尬,我觉得他应该想写的是 127
    qinxi
        11
    qinxi  
       2018-08-19 08:39:16 +08:00 via Android   ❤️ 1
    @Athrob IP 的 ssl 是有的 比如 https://1.1.1.1,但是不知道普通用户怎么申请 IP 的证书
    Kinnice
        12
    Kinnice  
       2018-08-19 09:34:49 +08:00 via Android
    @qinxi 和普通域名申请 ssl 差不多 eg.数安时代 ssl
    flyzero
        13
    flyzero  
    OP
       2018-08-19 09:35:47 +08:00 via Android
    好尴尬,本来想写 127 的,后来脑子开窍了一下,访问 API,还是客户端访问的,所以直接改成 https://www.xxxx.xx/api/xxx 可以了,虽然只起了一个服务(前后端在一个服务器上),跨域这个已经设置了,跨域这个我在了解一下,尴尬,谢谢各位大佬
    weixiangzhe
        14
    weixiangzhe  
       2018-08-19 13:24:58 +08:00 via iPhone
    用一台机器为什么要用 ip 访问类,nginx 不是更好点🤔
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2909 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 07:59 · PVG 15:59 · LAX 23:59 · JFK 02:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.