web-dev-qa-db-ja.com

Google Apps ScripturlfetchエンコーディングURL

Urlfetchを使用してスプレッドシートにページデータを入力したいのですが、使用しようとしているURLが無効な引数としてエラーで返されます。問題は、URLで誤って解釈されている文字(引用符や括弧など)を使用していることだと思います。

以下のコマンドでURLをエンコードしようとしましたが、一部の文字をダブルエンコードしていると想定しているため、問題が発生しています。

var encodedURL = encodeURIComponent(pageURL)
13
Pigcowpig

使ってみてください

baseURL + encodeURIComponent(parameterString)

クエリするベースURLに渡すパラメータを、encodeURIComponent関数に渡される値として含める場合。この投稿はあなたに役立つかもしれません:

JavaScriptでURLをエンコードしますか?

上記のようにURL全体をエンコードすると、パラメータだけでなく、問題が発生する場所にエンコードされていると思います。

19
TMan

あなたはおそらく個人的に答えを必要としないでしょう、しかし私は必要なもののために書きます。 GitLabへのAPI呼び出し(API v4)を成功させるには、「変数」のみをエンコードする必要があります。下記参照:

var url = baseUrl + projectId + "/repository/files/" + encodeURIComponent(pathAndFileName) + "?branch=" + encodeURIComponent(branch) + "&author_email=" + encodeURIComponent(authorEmail) + "&author_name=" + encodeURIComponent(authorName) + "&content=" + encodeURIComponent(content) + "&commit_message=" + encodeURIComponent(commitMessage);

ここで、pathAndFileNameは以前に定義された変数です。

1
Daniel Turuș