什么是跨域
浏览器有同源策略,不允许 ajax 访问其他域的接口
跨域条件:协议、域名、端口,有一个不同就算跨域
http 默认端口是 80
https 默认端口是 443
有三个标签允许跨域加载资源
// 可用于打点统计,统计网站可能是其他域
// 可以用于 JSONP,也能使用 CDN
// 可以使用CDN,CDN的也是其他域
跨域的几种方式
1、JSONP 跨域的数据请求
JSONP 实现原理
1、加载 http://www.baidu.com/test.html
2、不一定服务端真正有一个 test.html 文件
3、服务器可以根据请求,动态生成一个 test.html 文件,返回
4、同理于
<script> window.callback = function (data) { console.log(data); // 这是跨域得到的信息 } </script> <script src="http://www.baidu.com/api.js"></script> <!-- api.js 内容是: callback({x: 100, y: 200}) -->
2、服务端设置 http header 这是将来解决跨域问题的一个趋势
// 注意:不同后端语言的写法可能不一样 // 第二个参数填写允许跨域的域名,* 代表允许所有域,不建议直接写 * response.setHeader("Access-Control-Allow-Origin", "http://a.com, http://b.com");
以上是如何理解Js跨域的详细内容。更多信息请关注PHP中文网其他相关文章!