我希望能够将URL称为标准HTTP GET或AJAX调用。
根据请求是否是AJAX请求,服务器需要稍微不同地处理请求。
使用jQuery,我想自动为我所做的所有AJAX请求添加一个参数,这样服务器就可以识别它们,而且我不必在每个地方都打电话来添加参数。
我已尝试使用jQuery.ajaxSend事件处理程序执行此操作,但此时,XMLHttpRequest已经构建,并且对ajaxOptions对象的URL或数据成员进行更改无效,我不这样做知道如何可靠地操作XMLHttpRequest对象(我可以在Firebug中检查它,但我不知道我可以期望以跨浏览器的方式工作)。
我应该如何实现这一目标?有没有更好的方法来识别AJAX请求?
答案 0 :(得分:2)
我认为在服务器端测试值为x-requested-with
的{{1}}标头更好更简单,以区分ajax请求和正常请求。注意:欺骗该标题非常容易。这是一个简单的PHP示例:
XMLHttpRequest
答案 1 :(得分:1)
只需创建一个调用$.ajax
的函数,但将其添加到:
function myAjax(opts) {
opts.data = opts.data || {}; // make sure it exists
opts.data.myParam = "42";
$.ajax(opts);
}
然后在其他地方打电话。正如karim79所说,您还可以检查X-Requested-With: XMLHttpRequest
标题。但是,是的,这两种方式都很容易被欺骗,所以请客户端给你带来一些盐。