You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在POST请求头中发送数据及Basic Auth认证数据

关于POST请求头发送数据及Basic Auth的解决方案

问题1:如何在POST请求的请求头中发送数据?

在AngularJS里,有两种常用方式给POST请求添加自定义请求头:

  • 单次请求单独设置:调用$http.post时,通过第三个参数(配置对象)的headers属性指定请求头,示例如下:
$http.post('/api/login', requestData, {
  headers: {
    'X-Custom-Header': '自定义内容',
    'Content-Type': 'application/json'
  }
});
  • 全局默认设置:如果多个请求需要复用相同请求头,可以通过$http.defaults.headers做全局配置,比如:
// 给所有POST请求添加默认头
$http.defaults.headers.post['X-Global-Header'] = '全局通用值';
// 给所有请求(GET/POST等)添加默认头
$http.defaults.headers.common['Authorization'] = '认证信息';

问题2:如何在POST请求头中提交Basic Auth认证数据?

你已经完成了用户名密码的Base64编码,但漏掉了Basic Auth的核心格式要求:Authorization请求头的值必须以Basic (注意后面有个空格)开头,再跟上编码后的username:password字符串。

结合你的代码,修改后的login方法可以参考下面的写法:

.factory('Auth', function (Base64, $http, AuthToken) { //用于登录/登出
  var authFactory = {};
  authFactory.login = function (loginData) {
    // 编码用户名和密码
    var authdata = Base64.encode(loginData.username + ':' + loginData.password);
    // 正确设置Basic Auth请求头:必须加上"Basic "前缀
    $http.defaults.headers.common['Authorization'] = 'Basic ' + authdata;
    
    var userData = { username: loginData.username , authdata: authdata }
    // 后续POST请求逻辑
    return $http.post('/api/login-endpoint', userData)
      .then(function(response) {
        // 登录成功后的逻辑,比如保存token
        AuthToken.setToken(response.data.token);
        return response.data;
      }, function(error) {
        // 登录失败时清空无效的认证头
        delete $http.defaults.headers.common['Authorization'];
        return error;
      });
  };

  // 登出时记得清除认证头
  authFactory.logout = function() {
    delete $http.defaults.headers.common['Authorization'];
    AuthToken.setToken(null);
  };

  return authFactory;
});

额外提醒两点:

  • 如果只有当前登录请求需要Basic Auth,建议不要全局设置$http.defaults.headers.common,而是在本次POST请求的配置里单独设置,避免影响其他不需要认证的请求:
return $http.post('/api/login-endpoint', userData, {
  headers: {
    'Authorization': 'Basic ' + authdata
  }
});
  • 登录失败后一定要清除已设置的认证头,防止后续请求携带无效的认证信息。

内容的提问来源于stack exchange,提问作者ravan one

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:53:10