1

我有一个角度应用程序,我正在使用测试密钥发出一个 http 请求。

var authString = ('Basic '+ btoa("ef7d25e3-0771-46ba-b4f8-bc9ac719777a:"));

var url = 'https://api.postmates.com/v1/customers/cus_KHKFAOoa9PWhPF/delivery_quotes';
var headers = {'Content-Type': 'application/x-www-form-urlencoded', 'Authorization':authString};

var req1 = { method: 'POST', 
          url: url, 
          headers:headers,
          data: params1, 
      };
return $http(req1);

回应是:'No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:9000' is therefore not allowed access. The response had HTTP status code 401.'

我有同样的代码在 python 中使用请求,但我不确定为什么我不能让它在我的角度应用程序中工作。

我确实设置了默认的 http 标头:

$httpProvider.defaults.useXDomain = true;
delete $httpProvider.defaults.headers.common['X-Requested-With'];

我认为身份验证在某种程度上是错误的

4

1 回答 1

1

出于安全原因,我们目前不允许访问控制标头。如果您直接从客户端进行 API 调用,那么您很可能会暴露您的 API 凭据。

我建议走 Python 路线,或者从我们的一位社区成员那里查看这个 Node 包:https ://github.com/lambtron/postmates-node

如果您还有其他问题,请告诉我!

于 2015-09-01T16:47:31.510 回答