跨域 - 图1

  1. chengbenchao.top //主域名
  2. www.chengbenchao.top;
  3. aaa.chengbenchao.top
  4. bbb.chengbenchao.top
  5. //www,aaa 子域名
  6. https://www.chengbenchao.top:8080/a.txt
  7. //https,http协议
  8. //协议,子域名,主域名,端口号,请求的资源文件

当协议,子域名,主域名,端口号有任意个不同的时候,就算跨域

  • 不同域之间请求资源就算做跨域。
  • Javascript出于安全性的考虑,不允许跨域调用其他页面的对象。简单理解就是因为Javascript同源策略的限制,a.com域名下的js无法操作b.com域名下的对象。

跨域 - 图2

解决跨域方法

jsonp

  1. <script>
  2. $.ajax({
  3. url:"http://192.168.4.18:7000/ad",
  4. method:"get",
  5. dataType:"jsonp",//dataType改为jsonp即可解决
  6. success:res=>{
  7. console.log(res)
  8. }
  9. })
  10. </script>

服务器的解决方案

跨域 - 图3

js中script标签不受同源策略的影响也可以实现跨越

  1. var script = document.createElement("script");
  2. script.src = "http://api.douban.com/v2/movie/subject/1764796?&callback=handleResponse";
  3. document.body.prepend(script);
  4. function handleResponse(res) {
  5. // 对response数据进行操作代码
  6. console.log(res)
  7. }