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>


浙公网安备 33010602011771号