修改angularjs中http请求的header信息

作者:杨润炜
日期:2016/4/21 15:03

angularjs中的http请求与jq的ajax请求的区别

express框架中的req.xhr可以用来判断是否为ajax请求,我在开发中也用这个来区分是否是异步请求。然而在angular中,因为其http模块没有像jquery的ajax请求那样带着x-requested-with值为XMLHttpRequest的header信息,所以无法使用req.xhr来区分出异步请求。

http请求中注入header信息

  1. myAppModule.config(['$httpProvider', function($httpProvider) {
  2. $httpProvider.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
  3. }]);

这样express的req.xhr便可以识别出哪些是异步请求咯。

koa注入中间件给req.xhr赋值

在应用路由之前加上下面的代码,通过注入中间件的方式为koa中req.xhr赋值,从而实现异步请求的区分。

  1. // 注入中间件
  2. app.use(function *(next) {
  3. if (this.req.headers['x-requested-with']&&this.req.headers['x-requested-with'].toLowerCase() == 'xmlhttprequest') {
  4. this.req.xhr = true;
  5. } else {
  6. this.req.xhr = false;
  7. }
  8. yield next;
  9. });

参考

AngularJS $resource not sending X-Requested-With

感谢您的阅读!
如果看完后有任何疑问,欢迎拍砖。
欢迎转载,转载请注明出处:http://www.yangrunwei.com/a/49.html
邮箱:glowrypauky@gmail.com
QQ: 892413924