ajax-day03

1.ajax

Ajax是和后台进行交互
正常情况下,通常都是后台给接口给你,而不是给文件给你,所以,我们都是用ajax直接访问接口
尝试访问:http://cdn.weather.hao.360.cn/api_weather_info.php?app=hao360&code=101010100
但是,直接访问接口,报错啦
但是提示不是接口有问题,而是不允许你访问
注意:这不是你电脑的问题,也不是浏览器型号的问题,所有浏览器都是这样
这个叫做跨域
什么是跨域:
跨域,指的是浏览器不能执行其他网站的脚本,它是由浏览器的同源策略造成的,是浏览器施加的安全限制;
所谓的同源:域名、协议、端口均相同
www.123.com/index.html调用www.123.com/index.php(非跨域)
www.123.com/index.html调用www.456.com/index.php(主域名不同,跨域)
abc.123.com/index.html调用def.123.com/index.php(子域名不同,跨域)
所有浏览器,都有一个漏洞
虽然浏览器限制了我们跨域访问,但是,script标签,却没有限制
聪明的前辈们,就开发出了一个新的技术,叫做跨域,就是利用script标签无限制的漏洞
简单来说,JS直接跨域访问接口报错,浏览器不允许
但是通过script标签去跨域访问,就不会报错




解决跨域问题的方法,我们叫做jsonp
Jsonp也是一个技术,但是这个技术和ajax没关系
但是,jquery为了方便,把ajax和jsonp封装在了一起,但是我们要知道,jsonp和ajax没关系
所谓jsonp是什么?就是在我们访问一个借口的时候,使用jsonp技术,用一个回调函数,把数据装起来,然后通过回调函数拿数据,这就是jsonp技术

通过script标签,访问跨域API
通过jsonp技术,用回调函数接收api数据
最后,在回调函数里面处理数据
这就是跨域技术
但是,我们要注意,script标签,一定不能写死,而是应该动态添加上去


Baidu.com           主域名
www.baidu.com   二级域名,子域名



json和数组和变量一样,都是存放数据的格式
变量存放单个数据
数组存放多个数据
Json同样存放多个数据,但是,json可以存放有名字的数据
Var arr = [1,2,32,4,5,8,6]
Var json = {
    Name:’胡银’,
    Name2:’刘飞’,
    Data:[1,2,3,4,{name3:’龚博’}]
}
Json.data

你可能感兴趣的:(ajax-day03)