首頁  >  文章  >  web前端  >  JS跨域處理詳解

JS跨域處理詳解

小云云
小云云原創
2018-03-26 15:33:051458瀏覽

本文主要和大家分享JS跨域處理詳解,解決js的跨域問題可以使用Jsonp,希望能幫助大家。

Js不可以跨網域請求資料。

什麼是跨域:

#1、網域不同

2、域名相同連接埠不同。

解決js的跨域問題可以使用Jsonp,使用 js的特性繞過跨域請求。 Js可以跨網域載入js#檔。

原理圖:


#實作方法:

ajax中要注意的地方(一定要加  dataType ):

$.ajax({
    url : "http://localhost:8088/user/token/" + _ticket,
    dataType : "jsonp",    type : "GET",    success : function(data){        //回调函数    }
});

Spring中注意的地方:

@RequestMapping(value="/user/token/{token}", produces=MediaType.APPLICATION_JSON_UTF8_VALUE)
@ResponseBody
    public String getUserByToken(@PathVariable String token, String callback) {
    //请求参数中要含 callback 方法名
    //把结果封装成一个js语句响应    return callback + "(" + result + ");";
}

produce處還有一種寫法  :produces="application/json;charset=utf-8"

如果專案中使用的Spring 是4.1以後的版本,可以使用以下返回方式:

MappingJacksonValue mappingJacksonValue = new MappingJacksonValue(result);

mappingJacksonValue.setJsonpFunction(# callback);

handler的回傳型別可以改成object型別。

#

以上是JS跨域處理詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn