美文网首页
Ajax之跨域

Ajax之跨域

作者: Frankeen | 来源:发表于2018-11-29 10:53 被阅读4次
跨域概念

同源策略是浏览器上为安全性考虑实施的非常重要的安全机制。Ajax默认是能获取同源的数据,对于非同源的数据Ajax默认是不能获取到的。什么叫同源呢,同源就是两个相互交互的地址的协议,端口,域名三者都一样;比如有一个页面,它的地址为http://www.ko.com/dir/page.html这个网址,在这个网址中要去获取服务器的数据,获取数据的地址如下:

#URL                                 结果                    原因
https://www.ko.com/dir/page.html              不同源                   协议不同,一个是http,一个是http
http://www.ko1.com/dir/page.html              不同源                    域名不同,一个是ko,一个是ko1
http://www.ko.com:82/dir/page.html          不同源                   端口不同,一个是80,一个是82
http://www.ko.com/dir1/page.html               同源

如果获取非同源数据,就会报以下异常:

Failed to load https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=%E8%B1%86: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.

如果我们想要获取跨域的数据,我们该怎么办呢?
可以通过script的src方式,也可以使用ajax设置数据类型为jsonp

#方式一
<script type='text/javascript'>
  function cb(data){
    console.log(data);
}
</script>
<script type='text/javascript' src="https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=dd&callback=cb"></script>

#方式二
$.ajax({
        url:"https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su",
        data:{wd:"豆"},
        success:function(data){
        console.log(data);
        },
        dataType:"jsonp",
        jsonp:"cb"
      })

相关文章

  • 解决ajax跨域问题

    Jsonp解决ajax跨域问题 CORS解决ajax跨域问题

  • 前端跨域

    什么是ajax跨域 ajax跨域的原理 ajax出现请求跨域错误问题,主要原因就是因为浏览器的“同源策略”,可以参...

  • 跨域

    跨域:ajax 不能跨域img css script 标签 可以跨域例如:《img src="images/...

  • Http浅析【2】——ajax跨域问题

    视频参考:ajax跨域完全讲解 本文精华版:【综合】ajax跨域问题 什么是跨域问题 简单来讲,当前台调用后台,如...

  • 交互那些事(二)

    说完ajax我想必须说说jsonp了,谈到jsonp就必须先说说跨域,首先ajax是不能跨域的,除非后台允许跨域或...

  • ajax跨域请求

    ajax跨域请求(jsonp) 利用JSONP解决AJAX跨域问题的原理与jQuery解决方案JSONP jQue...

  • 珠峰 AJAX --- JSONP跨域

    珠峰 AJAX --- JSONP跨域AJAX(异步 javascript and XMLHTTPReq...

  • Ajax之跨域

    跨域概念 同源策略是浏览器上为安全性考虑实施的非常重要的安全机制。Ajax默认是能获取同源的数据,对于非同源的数据...

  • AJAX之跨域

    原文链接:http://wyb0.com/posts/ajax-cross-domain/ 0x00 简介 当使用...

  • Ajax之跨域

    代理 JSONP可用于解决主流浏览器的跨域数据访问的问题jquery自带只支持GET XHR2HTML5提供的XM...

网友评论

      本文标题:Ajax之跨域

      本文链接:https://www.haomeiwen.com/subject/mksxcqtx.html