检测是否是 AJAX 请求

Detect if is an AJAX requests

我如何检测请求是否为 AJAX?

会检查

req.Header.Get("X-Requested-With")

适用于所有浏览器?

不幸的是"X-Requested-With"并不总是可靠的。如果您可以控制 Ajax 调用,您可以使用 beforeSend 函数来确保已设置:

$.ajax({
    url: "http://localhost/url",
    data: { signature: authHeader },
    type: "GET",
    beforeSend: function(xhr){xhr.setRequestHeader('X-Requested-With', 'xmlhttprequest');},
    success: function() { alert('Success!' + authHeader); }
});

然后您可以检查是否 req.Header.Get("X-Requested-With") == 'xmlhttprequest'