@json和jsonp的区别?
php或者asp.net很容易取到json的数据。但是如果用js,因为ajax不能跨域,所以你还要绕一下,让你的php来先取数据。
但是用jsonp就不一样了,HTML的<script>的标签 的src不存在跨域问题,可以是碰到域名的,一般jsonp的用法是你在本地写好解析的函数,
然后通过src把函数名传递过去,返回的代码会自动调用这个函数。
也就是说,jsonp通过src封装的,解决了ajax跨域不能获取数据问题。
@什么是跨域?
比如你的域名是a.com,那么ajax只能请求a.com的某个页面,请求b.com是不被允许的。
@案例:
<script type="text/javascript">
//http://api.map.baidu.com/telematics/v3/weather?location=%E5%91%A8%E5%8F%A3&output=json&ak=kGGYIYTmRVQOWPUjgk3w7QZ1
/* $.get('http://api.map.baidu.com/telematics/v3/weather?location=%E5%91%A8%E5%8F%A3&output=json&ak=kGGYIYTmRVQOWPUjgk3w7QZ1',function(data,status){
alert("Data Loaded: " + data+"|"+status);
},"jsonp"); */
$.ajax({
type:"get",
async:false,
url:'http://api.map.baidu.com/telematics/v3/weather?location=%e5%91%a8%e5%8f%a3&output=json&ak=kGGYIYTmRVQOWPUjgk3w7QZ1',
dataType:"jsonp",
success:function(json){
alert(json);
},
error:function(){
alert("fail");
}
});
</script>
浙公网安备 33010602011771号