ajax跨域请求jsonp

什么叫跨域?

1. 域名不同

2. 端口不同

3. 协议不同

满足任意一项即就是跨域请求

 

什么是JSONP?

Jsonp(JSON with Padding) 是 json 的一种"使用模式",可以让网页从别的域名(网站)那获取资料,即跨域读取数据。

为什么我们从不同的域(网站)访问数据需要一个特殊的技术( JSONP )呢?这是因为同源策略。

同源策略,它是由 Netscape 提出的一个著名的安全策略,现在所有支持 JavaScript 的浏览器都会使用这个策略。

 

JSONP是解决什么问题的?

是为了解决跨域读取数据的问题,实现原理其实是利用了script标签的src属性实现,因为src属性不受跨域限制。

 

jquery简写形式:使用jsonp请求IP地址接口:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script type="text/javascript" src="https://code.jquery.com/jquery-3.1.0.min.js"></script>
    <title>Demo</title>
</head>
<body>
    IP:<input type="text" name="name" id="txt">
    <input type="submit" value="查询" id="btn"><br><hr>
    <p></p>
    <p></p>
    <p></p>
    <p></p>
</body>
<script>
    $('#btn').click(function(){
        var ip = $('#txt').val();
        $.getJSON("http://apis.juhe.cn/ip/ipNew?ip="+ip+"&key=9374fd1994e96feecadc116dcf7aa1b5&callback=?", function(data){
                /* console.log(data);
                console.log(data.result.Country); */
                $('p:eq(0)').html(data['result']['Country']);
                $('p:eq(1)').html(data['result']['Province']);
                $('p:eq(2)').html(data['result']['City']);
                $('p:eq(3)').html(data['result']['Isp']);
                
        });
    })
    
</script>
</html>

 

posted @ 2021-03-14 12:46  华北业余选手  阅读(156)  评论(0)    收藏  举报