關於前端發起請求
問題一 JS發起請求的方式
方法一
JS代碼中發起請求的方式普遍為AJAX
該技術在 1998 年前后得到了應用。允許客戶端腳本發送HTTP請求(XMLHTTP)
方法二
script標簽請求
方法三
通過HTML的方法
通過js自動在jsp中創建一個form表單,並給其method屬性為post
function post(URL, PARAMS) {
var temp = document.createElement("form");
temp.action = URL;
temp.method = "post";
temp.style.display = "none";
for (var x in PARAMS) {
var opt = document.createElement("textarea");
opt.name = x;
opt.value = PARAMS[x];
temp.appendChild(opt);
}
document.body.appendChild(temp);
temp.submit();
return temp;
}
$(".submit_d a").click(function(){
var data = ($(this).attr("class")).split("-");
var series = data[0];
var discharge = data[1];
var carriageNum = data[2];
var seatNum = data[3];
var gear = data[4];
var cost = data[5];
var pictureUrl = data[6];
var id = data[7];
post(ctx+"/order/rentcar.action",{"series":series,"discharge":discharge,"carriageNum":carriageNum,"seatNum":seatNum,"gear":gear,"cost":cost,"pictureUrl":pictureUrl,"id":id});
});
問題二 設置header、cookie
CSRF發起的請求可以設置cookie(token)、header么
CSRF或者jsonp,利用時需要跨域。
跨域首先排除掉AJAX方法
AJAX如何跨域
- CORS
簡單來說,請求時瀏覽器檢測到跨域,會帶上Origin,得到服務器的准許后才能夠獲取數據。
CORS不僅設置了AJAX跨域時的域名,還有請求方法、返回Header獲取字段、允許發送cookie等
瀏覽器同源政策及其規避方法(阮一峰)
CORS需要大多數情況下,前端是無感知的,這是后端服務器做的部分。 - JSONP
JSONP能夠跨域的原因在於