http页面请求https资源或ajax是跨域吗?反过来呢?

ygtzz
  • 537

http页面中可以请求https,但是两者协议不同,不是跨域吗?
https页面中不能请求http,仅仅是因为两者跨域?

回复
阅读 10.4k
5 个回答
✓ 已被采纳

域名 , 协议 , 端口 只要有一个不同都是跨域. localhost127.0.0.1 虽然都指本机, 但也属于跨域.

还有第二个问题的啊, 补下.

https页面里只能请求其它https的资源, 不能使用HTTP, 这是浏览器的安全设置的, 别说异步ajax请求了, 连在页面引入http的静态资源都不行, 浏览器都会有相应的提示, 类似通过点击其图标查看安全状态和通过证书, 目前没有关闭设置的方法.

浏览器证书提示

所谓“同源”指的是”三个相同“。

  • 协议相同
  • 域名相同
  • 端口相同

比如说 http://segmentfault.com/ 这个网址,协议是http://,域名是 segmentfault.com,端口是80。

那么也就是说 https 请求是就是跨域,反过来也是跨域。

如果有的网站可以,那一定是设置了 cors。

跨域受限的最常见的还有 cookie localStorage indexedDB DOM 操作也是。

跨域是针对ajax来说的
https不能加载http是安全限制,不能加载比自己还低的安全级别

如果AJAX可以无限制跨域的话,它就和桌面SOCKET差不多了。功能实在太强了,相对来说安全性也差了很多。

https地址中,如果加载了http资源,浏览器将认为这是不安全的资源,将会默认阻止

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏