如何發(fā)請求行疏?
用 form 可以發(fā)請求役耕,但是會刷新頁面或新開頁面
用 a 可以發(fā) get 請求贸铜,但是也會刷新頁面或新開頁面
用 img 可以發(fā) get 請求秽五,但是只能以圖片的形式展示
用 link 可以發(fā) get 請求孽查,但是只能以 CSS、favicon 的形式展示
用 script 可以發(fā) get 請求筝蚕,但是只能以腳本的形式運行
有沒有什么方式可以實現(xiàn)
get卦碾、post铺坞、put起宽、delete 請求都行
想以什么形式展示就以什么形式展示
用form發(fā)
GET請求
http://js.jirengu.com/funix/1/edit
POST請求
http://js.jirengu.com/podod/2/edit
用a標簽發(fā)請求 GET請求
用image發(fā)請求,只能以圖片的形式展示
用link發(fā)請求
用script來發(fā)請求
請使用原生JS來發(fā)送AJAX請求
給瀏覽器返回了符合html語法的字符串
open配置
第3個參數(shù)一定要是異步济榨,即async
一般后面3個參數(shù)可以不寫坯沪,即采用默認的
搜xml mime type
結(jié)果是text/xml或者 application/xml
返回XML格式的數(shù)據(jù)
計算代碼執(zhí)行時間
請求執(zhí)行的時間還是比較長的,即打印的第二行都打印完了擒滑,第一行打印還未執(zhí)行完
readyState的值的含義
響應有可能是分次返回的
每1ms問下狀態(tài)
狀態(tài)為4表示請求已經(jīng)把響應下載完畢了
js manipulate XML 如何用js操作XML 搜
最后獲取XML數(shù)據(jù)
JSON是門語言
javascript語言精粹
JSON中沒有undefined腐晾、symbol叉弦、function
XML的數(shù)據(jù)格式太麻煩了,換JSON格式
字符串
符合JSON對象語法的字符串
//////////////////////////////////////////////////////同源策略
問題:為什么form表單提交沒有跨域問題藻糖,而AJAX有
試驗:
向百度發(fā)一個GET請求是沒有問題的
如果用AJAX來向百度來發(fā)請求
請求成功了淹冰,但是報了一個錯誤
request.status盡然是0
同源策略:如果你不是baidu.com頁面里的JS,你就不能向baidu.com這個域名發(fā)起AJAX請求
只有AJAX是不允許的巨柒,其他的圖片樱拴、iframe、form洋满、css晶乔、js、a牺勾、link正罢、script等都可以
只有協(xié)議+端口+域名一模一樣,才允許發(fā)AJAX請求
1驻民、http://baidu.com可以向http://www.baidu.com發(fā)AJAX請求嗎翻具? no
2、http://baidu.com:80 可以向http://baidu.com:81發(fā)AJAX請求嗎川无? no
問題:為什么要有同源策略
比如form表單提交后呛占,會刷新掉頁面,原有的頁面會掛掉懦趋,不會偷新頁面的內(nèi)容晾虑,瀏覽器認為是安全的
而AJAX是可以讀取響應內(nèi)容的,
比如如果可以讀取另外一個網(wǎng)站的內(nèi)容仅叫,比如錢帜篇,那么問題就大了
如果需要如何解決呢?
1诫咱、用JSONP(但是JSONP不能POST)
2笙隙、用CORS 方法,可以告訴瀏覽器坎缭,我倆一家的竟痰,不要阻止
8001要訪問8002,后臺寫允許8001訪問(后臺加的一個響應頭)
CORS跨源資源共享
Cross-Origin Resource Sharing
搜 cors multiple domains
突破同源策略就是跨域