2017-08-19 3 views
0

私はクロムエクステンションを作成しています。私のエクステンションには、JSONデータをサーバーから取得するXMLHttpRequestがあります。次にJSONデータを解析してURLを探します。クロムエクステンションxmlhttprequest不正なURLをロード

問題は、解析したJSONデータから取得したURLでXMLHttpRequestを呼び出すことですが、なんらかの理由でURLに余分な情報が含まれていることが原因です。

以下のエラーがXMLHttpRequestをを呼び出すときに、私が得るものです:

GETクロム拡張子:// kppcidkhcjeehdfhcaliekdbgpbkjahg /%22https://b.thumbs.redditmedia.com/BldqCmg1rCqffUDXXYjvO_CQ_58pYIfAGCuHY7dTBIw.jpg%22ネット:: ERR_FILE_NOT_FOUND

なぜ私のURLに余分な情報があるのか​​わかりません。 URL文字列を含むvarをconsole.logに出力すると、正しく出力されます:https://b.thumbs.redditmedia.com/BldqCmg1rCqffUDXXYjvO_CQ_58pYIfAGCuHY7dTBIw.jpg

上記のURLは、私がXMLHttpRequestでGET要求を実行したいと思っていますが、GET要求が失敗したようです適切なURL。 https://b.thumbs.redditmedia.com/BldqCmg1rCqffUDXXYjvO_CQ_58pYIfAGCuHY7dTBIw.jpg 細かい作業私のXMLHttpRequestになり:IハードコードURL、および私はURLをハードコーディングテストしたとき

私の最初のXMLHttpRequestが動作します。

リモートサーバから動的に取得するURLに対してGETリクエストを実行できませんか?

+0

トピックを作成するには質問を編集してください:問題を複製する[mcve]を含めてください。 Chrome拡張機能やFirefox WebExtensionsの場合は、* manifest.json *や背景/コンテンツ/ポップアップスクリプト/ HTMLの一部を含むことがほとんどです。 (1)望ましい動作、(2)特定の問題またはエラー、および(3)それを再現するために必要な最短のコードを含める必要があります。質問自体に*。また、[ここで私はどのような話題を聞くことができますか?](http://stackoverflow.com/help/on-topic)、[ask]を参照してください。 – Makyen

+0

エラーメッセージで判断すると、chrome.runtime.getURLが間違って使用されています。これは拡張機能の内部ファイルのみです。それを使用しないでください。 APIメソッドを初めて使用する前に、必ずドキュメントをチェックしてください。 – wOxxOm

答えて

0

障害のあるURLには2つの%22の配列があります。これは二重引用符のエンコーディングです。私は、URLを変数に二重引用符で囲まれた文字列が含まれていると思います。 GET要求を実行すると、ローカルファイルシステムに拡張機能の要求が実行されます。

var real_url = "https://b.thumbs.redditmedia.com/BldqCmg1rCqffUDXXYjvO_CQ_58pYIfAGCuHY7dTBIw.jpg"; 
console.log(real_url.length); 
console.log(url.length); 

またはコンソール:したがって、この種のエラーを診断するchrome-extension://

一つの方法への要求は、URLを含む変数の長さをCONSOLE.LOG、それがどうあるべきかにそれを比較することです。余分な引用符を取り除くか、URLのためにJSONデータを解析するための責任のコードを変更しようと

console.log(url.substr(0,1)); // is this a double quote? 

:文字列の最初の文字を記録します。

+0

うん、あなたは100%正しい。私がしなければならなかったのは二重引用符を取り除くことだけでした。本当にありがとう! –

関連する問題