使用jsonp解決web遠程調用跨域問題

JSONP(JSON with Padding)是JSON的一種“使用模式”,可用於解決主流瀏覽器的跨域數據訪問的問題。

跨域問題

瀏覽器一個安全的限制,不允許js跨域請求資源,
www.a.com -> www.b.com 跨域
www.a.com -> www.a.com 非跨域
www.a.com -> www.a.com:8081 跨域

jsonp的原理

瀏覽器在js請求中,是允許通過script標籤的src跨域請求,可以在請求的結果中添加回調方法名,在請求頁面中定義方法,既可獲取到跨域請求的數據。

springmvc應用實例

前端調用
URL: "http://localhost:8081/data?callback=category.getDataService"
服務器web接口
@RequestMapping(value="/data", produces=MediaType.APPLICATION_JSON_VALUE + ";charset=utf-8")
@ResponseBody
public String getData(String callback) {
string json="{"name": "a","url": "http://www.a.com"}";
return callback + "(" + json + ");";
}
注:以下代碼解決亂碼問題
import org.springframework.http.MediaType;
@RequestMapping(value="/data", produces=MediaType.APPLICATION_JSON_VALUE + ";charset=utf-8")
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章