$ http.post - 请求标头字段Access-Control-Allow-Headers不允许授权

时间:2016-04-06 14:27:41

标签: jquery angularjs http http-headers

我正在使用角度js。 我有一个表单,我要求用户输入URL Basic Auth详细信息,即HTTP POST的用户名和密码(如PostMan)

我需要检查凭据是否有效。

我想出了以下代码:

$http({method: 'POST', url: $scope.serviceConfig.url, headers: {
    'Authorization': 'Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=='}
})
    .success(function(res)
    {
        console.log(res);
    })
    .error(function(res)
    {
        console.log(res);
    });

我收到以下错误:

  

无法加载api docs。请求标头字段   Access-Control-Allow-Headers中不允许授权   飞行前响应。

  1. 将Auth base64置于标题内是否正确?
  2. 这是服务器的问题还是我做错了什么?
  3. 还有其他方法来测试凭据吗?
  4. 还有其他服务器我可以测试Auth吗?我发现https://posttestserver.com/post.php但它只支持HTTP GET

1 个答案:

答案 0 :(得分:1)

您确实以正确的方式设置了授权标头。但是,postservertest.com已禁止通过Access-Control-Allow-Headers使用该标头:

$ HEAD http://posttestserver.com
200 OK
Connection: close
Date: Wed, 06 Apr 2016 15:26:58 GMT
Server: Apache
Vary: Accept-Encoding
Content-Type: text/html; charset=UTF-8
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept
Access-Control-Allow-Origin: *

总而言之,您的代码是正确的。只是服务器不愿意接受您的请求。您可以尝试requestb.in