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

2018-08-18 22:33:37 +08:00
 flyzero

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

3454 次点击
所在节点    API
14 条回复
Torpedo
2018-08-18 23:05:44 +08:00
跨域不?
qinxi
2018-08-18 23:12:24 +08:00
???还有这种操作?你的意思是你用 Ajax 请求的地址是 127.0.0.1 ?先不说你 https 配置问题。。。
请求的地址应该是用户浏览器可访问的 host:端口,127 这个 IP 是本机 IP,也就是你让用户访问自己的电脑?
再来说 HTTPS 的问题,我觉得你应该没有针对 IP 的 ssl 证书吧?那你就用你域名。没解决跨域就用你网页所在域(包括协议 host 端口)
还有一点需要注意是 HTTPS 的页面环境不能使用 HTTP 请求获取脚本和 Ajax,图片视频倒是可以
qinxi
2018-08-18 23:18:17 +08:00
强烈建议楼主系统的学习一下,既然都使用 HTTPS 了,我觉得应该不是初学者了吧。
Hilong
2018-08-19 00:27:59 +08:00
额⊙∀⊙!如果在同一台机器上,你可以把 127.0.0.1 去掉,直接访问 /api/xxx
yunye
2018-08-19 00:33:50 +08:00
有点尴尬了
Tink
2018-08-19 01:06:39 +08:00
@qinxi #2 明明是 120
caola
2018-08-19 01:19:46 +08:00
@flyzero 先不管你 https 的 IP 120.0.0.1 能否正常访问, 如果请求不在同一域名下,你得了解一下 CORS
night98
2018-08-19 04:40:25 +08:00
页面 url 应为 /api/user
你这个基础知识还需要再学习一下。。。
Athrob
2018-08-19 07:46:38 +08:00
1. 地址不对,120.0.0.1 是举例子还是就这么写的???
2. 证书问题,https 证书必须和域名匹配,纯 IP 好像不能正常申请 https 证书吧
3. 跨域问题
最后,开发者控制台看看错误输出
qinxi
2018-08-19 08:37:56 +08:00
@Tink 好尴尬,我觉得他应该想写的是 127
qinxi
2018-08-19 08:39:16 +08:00
@Athrob IP 的 ssl 是有的 比如 https://1.1.1.1,但是不知道普通用户怎么申请 IP 的证书
Kinnice
2018-08-19 09:34:49 +08:00
@qinxi 和普通域名申请 ssl 差不多 eg.数安时代 ssl
flyzero
2018-08-19 09:35:47 +08:00
好尴尬,本来想写 127 的,后来脑子开窍了一下,访问 API,还是客户端访问的,所以直接改成 https://www.xxxx.xx/api/xxx 可以了,虽然只起了一个服务(前后端在一个服务器上),跨域这个已经设置了,跨域这个我在了解一下,尴尬,谢谢各位大佬
weixiangzhe
2018-08-19 13:24:58 +08:00
用一台机器为什么要用 ip 访问类,nginx 不是更好点🤔

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/481063

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX