【发布时间】:2011-01-26 00:40:45
【问题描述】:
我使用 jquery 来发出 ajax 请求。是否可以在服务器端检测请求是ajax请求还是正常请求? jquery 是否添加任何输入变量或标头来实现这一点?
谢谢
【问题讨论】:
我使用 jquery 来发出 ajax 请求。是否可以在服务器端检测请求是ajax请求还是正常请求? jquery 是否添加任何输入变量或标头来实现这一点?
谢谢
【问题讨论】:
当请求的 ajax 标头称为 X-Requested-With 且值为 XMLHttpRequest 时,jQuery 在请求上添加一个附加标头。检查请求中的此标头。
或者,使用.ajaxSetup 设置您想要的任何标题,如下所示:
$.ajaxSetup({
headers: {"X-My-Header":"Bob"}
});
【讨论】:
X-Requested-With 标头(请参阅 bugs.jquery.com/ticket/8423)。它已从 CORS 请求中删除,以防止浏览器发送不必要的预检 OPTIONS 请求。
如果您使用的是 asp.net mvc,您的控制器将有一个属性 IsAjaxRequest 只需检查此属性
if (IsAjaxRequest)
{
// do your stuff and render ajax view
}
【讨论】: