美文网首页
jsonp跨域

jsonp跨域

作者: 加冰宝贝 | 来源:发表于2019-06-11 09:39 被阅读0次

1.jsonp跨域

原理:ajax本身是不可以跨域的,通过产生一个script标签来实现跨域。
      因为script标签的src属性是没有跨域的限制的。

    其实设置了dataType: 'jsonp'后,$.ajax方法就和ajax XmlHttpRequest
    没什么关系了,取而代之的则是JSONP协议。JSONP是一个非官方的
    协议,它允许在服务器端集成Script tags返回至客户端,通过javascript 
    callback的形式实现跨域访问。

    `ajax的跨域写法:`
    `js代码`

    $.ajax({
        type:"get",
        url:"[http://localhost:3000/showAll](http://localhost:3000/showAll)",/*url写异域的请求地址*/
        dataType:"jsonp",/*加上datatype*/
        jsonpCallback:"cb",/*设置一个回调函数,名字随便取,和下面的函数里的名字相同就行*/
        success:function(){}
    });

如果你是用的第三方的接口,并且第三方的接口返回的数据格式为json的格式,这时候,你就不能的使用 jsonp的方式 来解决跨域问题,因为jsonp本身是可以解决跨域问题,但是前提是返回的数据格式必须的jsonp格式的数据,才可以使用jsonp

2.jsonp 利用script 的src属性

    const script = document.createElement('script');
    script.type = 'text/javascript';
    script.src = 'http://api.map.baidu.com/location/ip?callback=show&coor=bd09ll&ak=zdID84p3fMRLNHzegSlgSbe9';
    document.body.appendChild(script);
    function show (jsonp) {
        console.log(jsonp)
    }

相关文章

网友评论

      本文标题:jsonp跨域

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