tes*_*ter 12 ajax angularjs route-provider
jQuery.ajax()通常发送X-Requested-With带有XMLHttpRequestset 的标头作为内容.在服务器上(在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文档 - (搜索templateUrl)
jQuery jqXHR - 请参阅jqXHR.setRequestHeader("X-Requested-With", "XMLHttpRequest")
v1.1.5通过Google CDN使用Angular
更新:我发现实际的承诺,其中角去除开发商X-Requested-With从$http.get.不知道为什么他们会这样做?
更新: https ://github.com/angular/angular.js/issues/1004 - 讨论删除标题的地方.
tes*_*ter 14
在FreeNode的#angularjs中给Zerot的帽子提示
app.config(['$routeProvider', '$httpProvider', function($routeProvider, $httpProvider) {
$httpProvider.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
$routeProvider.when('/', {
templateUrl: '/path/on/server',
controller: 'Ctrl'
});
});
Run Code Online (Sandbox Code Playgroud)
编辑:更具体地说,这是你需要的地方:
$httpProvider.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
| 归档时间: |
|
| 查看次数: |
2926 次 |
| 最近记录: |