Jsonp解決跨域3
1、jsonp請求修改callback參數(shù)名稱
你會發(fā)現(xiàn)返回?cái)?shù)據(jù)為json對象,不再是一個(gè)js函數(shù)

你會發(fā)現(xiàn)返回?cái)?shù)據(jù)為json對象,不再是一個(gè)js函數(shù)
原因:因?yàn)閖sonp是一個(gè)約定,以前前端和后端的參數(shù)約定是callback,現(xiàn)在前端請求參數(shù)是callback2,所以后端就不認(rèn)識callback2,所以就不知道這是一個(gè)jsonp請求,所以返回的就不會是一個(gè)js代碼,如果后端約定也改成callback2,它就會返回js代碼
2、jsonp前后端修改約定參數(shù)
前端改下約定參數(shù):callback2

前端改下約定參數(shù):callback2
后端改下約定參數(shù):callback2

后端改下約定參數(shù):callback2
jsonp請求參數(shù)為callback2,成功返回js代碼

jsonp請求參數(shù)為callback2,成功返回js代碼
3、jsonp請求實(shí)質(zhì)
發(fā)送jsonp請求,其實(shí)是創(chuàng)建動(dòng)態(tài)創(chuàng)建一個(gè)script腳本
打個(gè)debug斷點(diǎn)才能看到

發(fā)送jsonp請求,其實(shí)是創(chuàng)建動(dòng)態(tài)創(chuàng)建一個(gè)script腳本
執(zhí)行完head.insertBefore( script,head.firstChild );之后,表示動(dòng)態(tài)創(chuàng)建了一個(gè)script腳本

執(zhí)行完head.insertBefore( script,head.firstChild );之后,表示動(dòng)態(tài)創(chuàng)建了一個(gè)script腳本
4、jsonp參數(shù)’_’作用
另一個(gè)參數(shù)‘_’是一串隨機(jī)的數(shù)字,這個(gè)是用來避免請求緩存的

另一個(gè)參數(shù)‘_’是一串隨機(jī)的數(shù)字,這個(gè)是用來避免請求緩存的
啟動(dòng)cache表示可以使用緩存

啟動(dòng)cache表示可以使用緩存
你會發(fā)現(xiàn)jsonp請求少了‘_’參數(shù)
