Angular 7 HttpHeaders CORS问题

时间:2019-04-26 17:52:51

标签: javascript angular cors angular7

我正在尝试使用UPS的包裹等级API,并且能够在邮递员中使用它,但不能在网络浏览器中使用它。我知道邮递员不用担心CORS。

我有此发布请求:

getRate() {
    return this.http.post(this.upsUrlTest, this.upsConfig, this.postOptions);
}

我的3个变量是:

upsUrlTest = 'https://wwwcie.ups.com/ship/1801/rating/Rate';
upsConfig = {...This is filled out and working in postman...}
postOptions = {
  headers: new HttpHeaders({
    transId: '0001',
    transactionSrc: '##########',  //Actual information is correct
    AccessLicenseNumber: '########',
    username: '#########',
    password: '#########',
    // These last two are where I believe the problem is
    'Content-Type': 'application/json',
    'Access-Control-Allow-Origin': 'x-requested-with, x-requested-by',
  })
};

我得到这个回应: enter image description here

奇怪的是,在得到CORS问题之前,我得到了404。我不确定我的格式化格式是否错误,或者这里是否还有其他问题。

另一个注意事项:我正在本地主机上运行此有角度的项目,但是将其放在服务器上时也会遇到相同的问题。

编辑:仅因为这与CORS有关,但这并不能使其与我的情况重复。在这种情况下,到建议的原件的链接就足够了。

1 个答案:

答案 0 :(得分:1)

使用Angular,您需要在后端/目标URL中启用CORS策略。

默认情况下,在我的PHP项目中,我使用以下标头:

header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: POST, PUT, DELETE, GET, OPTIONS");
header("Access-Control-Allow-Headers: Content-Type, Content-Length, Accept-Encoding, Authorization, X-Requested-With");

关于Angular的另一个有趣的事情是,在执行Http请求之前,它执行了一个称为“预检”的功能,无非就是检查目的地是否可以接收该请求。

(对不起,我的英语不好,我是巴西人,我在花时间练习我的语言)