2017-12-13 26 views
2

Web-Api(正確にはPrestashops Web API)にアクセスしようとしていますが、取得にはこの形式のURLに問題があるようです: http://[email protected]。 ChromeとPostmanの両方で、すべて正常に動作しますが、fetch-APIを使用すると常に401というエラーが発生します。JavaScriptで取得できないhttp://[email protected]

は、ここに私の活字体コード:

public fetchData() { 
fetch("http://[email protected]").then((response : Response)=>{ 
    response.text().then((text : string) =>console.log(text)); 
}) 
+0

実際のリクエストをFiddler(または同様のもの)でチェックすると、何か変更されていますか? 1つのPostman要求と1つのフェッチ要求を実行し、両方の要求を比較できます。 – Fenton

答えて

1

http://[email protected]でURLがリクエストで使用することはできませんAPIを取得します。具体的には、ホスト名の前に "@"文字を使用させることはできません。

あなたは、このようなURLを使用する場合、(要求を停止することと)、ユーザー名/パスワードの資格情報を提供するものとして解釈され、the Fetch spec requires browsers to throw a TypeErrorだ:

Request(input, init)コンストラクタは、これらの手順を実行する必要があります。
...
parsedURLincludes credentialsの場合は、TypeErrorを投げます。

唯一の解決策は、(つまり、要求URL内のホスト名の前に「@」の文字を持っていない)のように、リクエストURLに資格情報を入れないことです。

関連する問題