19

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

以下のコマンドで URL をエンコードしようとしましたが、一部の文字を二重にエンコードしており、それが問題を引き起こしていると想定しています。

var encodedURL = encodeURIComponent(pageURL)
4

2 に答える 2

25

使ってみて

baseURL + encodeURIComponent(parameterString)

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

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

上記のように URL 全体をエンコードする場合は、パラメータ以上のものをエンコードしているため、問題がどこにあると思われます。

于 2012-08-29T20:17:33.653 に答える
2

個人的にはおそらく答えは必要ありませんが、必要な人のために書いています。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);

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

于 2018-08-01T18:19:07.143 に答える