后端如何区分前端传来的请求是否为ajax请求,通过获取请求中是否有"X-Requested-With"这个头数据,但如果您使用jQuery来执行ajax请求,它将不会发送标头X-Requested-With(HTTP_X_REQUESTED_WITH)= XMLHttpRequest,因为它是跨域的。但是有两种方法可以解决这个问题并发送标题:
①. 在ajax调用中手动设置标头,如下:
$.ajax({
url: "http://...",
headers: {'X-Requested-With': 'XMLHttpRequest'}
});
②.在ajax中添加"crossDomain: false",告诉jQuery不要使用跨域默认值,因此它会在ajax请求中保留X-Requested-With标头,如下:
$.ajax({
url: "http://...",
crossDomain: false
});
按照上面的方法设置后,还需在后端设置允许这些头通过,如下:
res.setHeader("X-Requested-With");