【问题标题】:Aurelia HttpClient with Authentication具有身份验证的 Aurelia HttpClient
【发布时间】:2016-11-22 20:36:10
【问题描述】:

我正在尝试使用 Aurelia HttpClient 在不同的域上调用 TagniFi API(并进行身份验证)。相关代码为:

return this._httpClient.createRequest(uri)
     .asGet()
     .withCredentials(true)
     .withHeader('Access-Control-Allow-Origin', 'localhost:9000')
     .withHeader('Authorization', 'Basic <my-key>')
     .send();

我确实从 API 收到了状态 200,但我收到以下错误:

对预检请求的响应未通过访问控制检查:当凭证标志为真时,不能在“Access-Control-Allow-Origin”标头中使用 >wildcard '*'。来源“http://localhost:9000”>因此不允许访问。 XMLHttpRequest 的凭据模式>由 withCredentials 属性控制。

我不确定这是我拨打电话的方式错误还是 Aurelia 中的错误。任何帮助表示赞赏。谢谢。

【问题讨论】:

    标签: aurelia


    【解决方案1】:

    Access-Control-Allow-Origin 是服务器在响应中发送的标头,在您的情况下,您在客户端的请求中使用它。

    这不是 Aurelia 中的错误,而是对 CORS 的滥用。

    有关 CORS 的更多信息,请参阅 this excellent answer

    【讨论】:

    • 感谢 Valentin,感谢您的回复。因此,如果我理解正确,问题是我调用的目标服务器未配置为返回 Access-Control-Allow-Origin 标头。换句话说,这不是我的代码中的错误,而是服务器配置中的错误?如果这是我的代码中的错误,请告诉我您是否有建议的修复方法。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-23
    • 2011-02-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多