我正在尝试访问web-Api(确切地说是Prestashops Web API),并且fetch似乎与此格式的网址有问题:http://SOMEKEY12345@www.example.com
。在Chrome和Postman中,一切都运行得很好但是使用fetch-API我总是会遇到401
错误。
这是我的打字稿代码:
public fetchData() {
fetch("http://SOMEKEY1234@www.example.com").then((response : Response)=>{
response.text().then((text : string) =>console.log(text));
})
答案 0 :(得分:1)
Fetch API不允许在请求中使用http://SOMEKEY1234@www.example.com
形式的网址。具体来说,它不允许您使用" @
"主机名前的字符。
如果您使用此类网址,则会将其解释为提供用户名/密码凭据,以及the Fetch spec requires browsers to throw a TypeError
(从而停止请求):
Request(input, init)
构造函数必须执行以下步骤:
...
如果 parsedURL includes credentials,则抛出TypeError
。
唯一的解决方案是不要在请求URL中放置凭据(也就是说,请求URL中的主机名之前没有" @
"字符)。