情况是这样的: 前端静态资源 和 后台在同一服务器上( http),前端调用后台 api 接口请求数据,之前一直是本地调用试试的,今天放到外部服务器上(用 https 了),改成 https://120.0.0.1/api/xxxxx,调用失败,请问这种该怎么写?
1
Torpedo 2018-08-18 23:05:44 +08:00 via Android
跨域不?
|
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,图片视频倒是可以 |
3
qinxi 2018-08-18 23:18:17 +08:00 via Android 1
强烈建议楼主系统的学习一下,既然都使用 HTTPS 了,我觉得应该不是初学者了吧。
|
4
Hilong 2018-08-19 00:27:59 +08:00 via Android
额⊙∀⊙!如果在同一台机器上,你可以把 127.0.0.1 去掉,直接访问 /api/xxx
|
5
yunye 2018-08-19 00:33:50 +08:00
有点尴尬了
|
7
caola 2018-08-19 01:19:46 +08:00 1
@flyzero 先不管你 https 的 IP 120.0.0.1 能否正常访问, 如果请求不在同一域名下,你得了解一下 CORS
|
8
night98 2018-08-19 04:40:25 +08:00 via Android
页面 url 应为 /api/user
你这个基础知识还需要再学习一下。。。 |
9
Athrob 2018-08-19 07:46:38 +08:00 via iPhone 1
1. 地址不对,120.0.0.1 是举例子还是就这么写的???
2. 证书问题,https 证书必须和域名匹配,纯 IP 好像不能正常申请 https 证书吧 3. 跨域问题 最后,开发者控制台看看错误输出 |
11
qinxi 2018-08-19 08:39:16 +08:00 via Android 1
@Athrob IP 的 ssl 是有的 比如 https://1.1.1.1,但是不知道普通用户怎么申请 IP 的证书
|
13
flyzero OP 好尴尬,本来想写 127 的,后来脑子开窍了一下,访问 API,还是客户端访问的,所以直接改成 https://www.xxxx.xx/api/xxx 可以了,虽然只起了一个服务(前后端在一个服务器上),跨域这个已经设置了,跨域这个我在了解一下,尴尬,谢谢各位大佬
|
14
weixiangzhe 2018-08-19 13:24:58 +08:00 via iPhone
用一台机器为什么要用 ip 访问类,nginx 不是更好点🤔
|