jQuery.ajax()
通常發送X-Requested-With
標頭,其中XMLHttpRequest
設置爲內容。在服務器中(PHP),我通常的測試檢測這樣的:
$is_ajax = $_SERVER['HTTP_X_REQUESTED_WITH'] === 'XMLHttpRequest'
在AngularJS,在$routeProvider.when()
常見,你可以從服務器獲取模板與templateUrl: '/path/on/server'
。
我的問題是是templateUrl
請求似乎不設置X-Requested-With
頭,所以沒有辦法區分任何其他類型的請求templateUrl
請求。
有沒有辦法讓$routeProvider
發送X-Requested-With
作爲XMLHttpRequest
?
參考:
$routeProvider Docs - (搜索
templateUrl
)jQuery jqXHR - 見
jqXHR.setRequestHeader("X-Requested-With", "XMLHttpRequest")
- 採用了棱角分明
更新:我找到了actual commit,其中Angular開發人員刪除
X-Requested-With
從$http.get
。不知道爲什麼他們會這樣做?更新:https://github.com/angular/angular.js/issues/1004 - 討論哪裏頭被刪除。