3

インターネット上のどこにも、この特定の問題や言及されている修正はありません。

私のアプリには、次doGet()doPost()機能が含まれています。

function doGet (e){return ContentService.createTextOutput("User says: "+JSON.stringify(e))}
function doPost(e){return ContentService.createTextOutput("User says: "+JSON.stringify(e))}

GET http://*published URL*/+params戻り値:

User says:     
{
  "queryString":"testparamA=abc&testparamB=bcd&testparamC=cde",
  "parameter":
    {
      "testparamA":"abc",
      "testparamB":"bcd",
      "testparamC":"cde"
    },
  "contextPath":"",
  "parameters":
    {
      "testparamA":["abc"],
      "testparamB":["bcd"],
      "testparamC":["cde"]
    },
  "contentLength":-1
}

一方、次をPOST http://*published URL*/+params返します。

User says:
{
  "queryString":null,
  "parameter":{},
  "contextPath":"",
  "parameters":{},
  "contentLength":0
}

私の目標は、POSTパラメーターにアクセスすることです。しかし、POSTメソッドを使用して送信されたときに、スクリプトがそれらをフェッチするのをブロックしているようです。GETうまくいくようです。

何が欠けていて、解決策は何ですか?

4

3 に答える 3

8

POST と GET は、あなたが投稿したのとまったく同じコードを使用して、私にとっては問題なく動作します。私の推測では、POST を正しくテストしていないということです。

私の公開URLはこちらです。背後にあるコードは、サンプルのコピー/貼り付けです-

https://script.google.com/macros/s/AKfycbzWZv9WUp7rUtOxZhhwuXPpuNXuvPGpiHyrcYrPeNLiusOWzazo/exec

http://hurl.it (ブラウザーでの単純な REST テスター)からテストし、問題なく動作します。

リクエスト (フォロー リダイレクトを確認してください) -

スクリーンショットをリクエスト

レスポンス(GET、POSTともにContentServiceのURLを1回リダイレクトした後のレスポンス)

応答のスクリーンショット

于 2012-11-28T04:21:20.307 に答える
2

これはある程度期待できると思います。実行するとHTTP GET、パラメーターが URL に渡されます。の場合POST、URL ではなくペイロードに移動します。

次のように post を呼び出してみてください (Apps Script コード):

UrlFetchApp.fetch(scriptUrl, {method:'post', payload:'param1=value1&param2=value2'});
于 2012-11-28T02:16:14.643 に答える