跨域問題---Jsonp原理

上圖中很好的指出了跨域問題的所在,所謂跨域就是  跨越不同的域名進行訪問。

跨域訪問是不可以接收到服務端返回的數據的!!!但是服務端的響應狀態看起來是沒有毛病滴。

現在開始處理跨域問題

1.我們需要先在一個通用的js文件中寫上一個function,就像這個樣子(借取的宜立方商城項目的片段)

checkLogin : function(){
var _ticket = $.cookie("token");    //從cookie中獲取自己模擬的session,(單點登錄系統)
if(!_ticket){   //  判斷是否存在
return ;
}
$.ajax({
url : "http://localhost:8088/user/token/" + _ticket,    //ajax請求的地址
dataType : "jsonp",     //  jquery封裝的  說明這個請求就是一個jsonp 跨域請求
type : "GET",
success : function(data){
if(data.status == 200){
var username = data.data.username;
var html = username + ",歡迎來到宜立方購物網!<a href=\"http://www.e3mall.cn/user/logout.html\" class=\"link-logout\">[退出]</a>";
$("#loginbar").html(html);
}
}
});
}

2.請求的參數

這個需要特別的注意!!!  默認是callback 

3.響應的數據既然不能識別json,那麼我們就給它拼成一個js文件返回來,這個拼出來的js的名稱需要跟js文件中定義好的方法名稱格式一致。這樣前端的js就可以識別該返回值 並且執行啦。

另外需要注意的!!!


返回的數據類型應該是application/json;charset=utf-8




發佈了39 篇原創文章 · 獲贊 2 · 訪問量 7289
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章