代码之家  ›  专栏  ›  技术社区  ›  T.Furholzer

Javascript获取不使用http://key@www.example。通用域名格式

  •  2
  • T.Furholzer  · 技术社区  · 8 年前

    我正在尝试访问web Api(确切地说是Prestashops web Api),fetch似乎对以下格式的url有问题: http://SOMEKEY12345@www.example.com . 在Chrome和Postman中,一切都很好,但使用fetch API,我总是可以 401 错误

    这是我的Typescript代码:

    public fetchData() {
    fetch("http://SOMEKEY1234@www.example.com").then((response : Response)=>{
      response.text().then((text : string) =>console.log(text));
    })
    
    1 回复  |  直到 8 年前
        1
  •  1
  •   sideshowbarker    8 年前

    Fetch API不允许表单中有URL http://SOMEKEY1234@www.example.com 在请求中使用。具体来说,它不允许您使用“ @ “”主机名前的字符。

    如果您使用这样的URL,则会将其解释为提供用户名/密码凭据,以及 the Fetch spec requires browsers to throw a TypeError (从而停止请求):

    这个 Request(input, init) 构造函数必须运行以下步骤:
    …
    如果 帕塞杜尔 includes credentials ,然后抛出 类型错误 .

    唯一的解决方案是不要将凭据以以下方式放入请求URL中(即,没有“ @ “请求URL中主机名前的字符)。