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