gpt4 book ai didi

ajax - $routeProvider : templateUrl requests with X-Requested-With header

转载 作者:行者123 更新时间:2023-12-04 00:56:30 26 4
gpt4 key购买 nike

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-WithXMLHttpRequest ?

引用:

  • $routeProvider Docs - (搜索 templateUrl)
  • jQuery jqXHR - 见 jqXHR.setRequestHeader("X-Requested-With", "XMLHttpRequest")
  • 使用 Angular v1.1.5通过 Google CDN
  • 更新:我找到了 actual commit Angular 开发人员删除的地方 X-Requested-With来自 $http.get .想知道他们为什么要这样做?
  • 更新:https://github.com/angular/angular.js/issues/1004 - 讨论标题被删除的地方。
  • 最佳答案

    尖顶到 Zerot 在 FreeNode 的 #angularjs

    app.config(['$routeProvider', '$httpProvider', function($routeProvider, $httpProvider) {
    $httpProvider.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
    $routeProvider.when('/', {
    templateUrl: '/path/on/server',
    controller: 'Ctrl'
    });
    });

    编辑:更具体地说,这是您在某处需要的行:
    $httpProvider.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';

    关于ajax - $routeProvider : templateUrl requests with X-Requested-With header,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17760096/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com