如何使用jquery为ajax调用添加参数?

时间:2009-11-02 13:02:30

标签: javascript jquery ajax

我希望能够将URL称为标准HTTP GET或AJAX调用。

根据请求是否是AJAX请求,服务器需要稍微不同地处理请求。

使用jQuery,我想自动为我所做的所有AJAX请求添加一个参数,这样服务器就可以识别它们,而且我不必在每个地方都打电话来添加参数。

我已尝试使用jQuery.ajaxSend事件处理程序执行此操作,但此时,XMLHttpRequest已经构建,并且对ajaxOptions对象的URL或数据成员进行更改无效,我不这样做知道如何可靠地操作XMLHttpRequest对象(我可以在Firebug中检查它,但我不知道我可以期望以跨浏览器的方式工作)。

我应该如何实现这一目标?有没有更好的方法来识别AJAX请求?

2 个答案:

答案 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标题。但是,是的,这两种方式都很容易被欺骗,所以请客户端给你带来一些盐。