2013-10-01 107 views
1

這是一個簡單的問題,但答案似乎逃避我從URL返回「參數得到的參數是未定義」

我想通過以下方式的參數傳遞給腳本: https://script.google.com/macros/s/AKfycbzygHQ2qQ.../exec?id=1234&value=Hello

的腳本是一個簡單的一個:

function doGet(e) { 
    Logger.log('in doGet function'); 
    for (var i in e.parameter) { 
    Logger.log('parameter ' + i+1 + ' is ' + e.parameter[i]); 
    } 
} 

並獲得在執行成績單如下:

[13-10-01 10:21:20:722 ICT] Starting execution 
[13-10-01 10:21:20:734 ICT] Logger.log([parameter is undefined, []]) [0 seconds] 
[13-10-01 10:21:20:735 ICT] Execution succeeded [0.0 seconds total runtime] 

我在這裏弄錯了什麼?

謝謝!

+1

其中一個簡單的錯字我期望,你應該迭代思想e.parameters – patt0

+0

我沒有任何編輯運行相同的代碼,我得到了「[13-10-01 12:33:48:576 IST] doGet函數 [13-10-01 12:33:48:576 IST]參數值1是你好「在記錄器 –

+0

謝謝艾哈邁德。我想這是腳本安裝和部署的問題...仍然無法找出... – theworldismyoyster

回答

2

只需使用e.parameter:

function doGet(e) { 
    var app = UiApp.createApplication(); 

    var label = app.createLabel('Parameter value a:'+e.parameter.a+' Parameter value b:'+e.parameter.b); 
    app.add(label); 

    return app; 
} 

發佈,

獲取URL,你應該得到這樣的:?

https://script.google.com/macros/s/AKfycbzvmy136r2B1RcIYd7QUmv9-1BBqD9WIwpt3NX9b3Wc3yZJazOj/exec 

加」 A =東西& B = somethingElse「到網址:

https://script.google.com/macros/s/AKfycbzvmy136r2B1RcIYd7QUmv9-1BBqD9WIwpt3NX9b3Wc3yZJazOj/exec?a=Something&b=somethingElse 

並重新加載頁面,你應該看到:

Parameter value a:Something -- Parameter value b:somethingElse 

THW瀏覽器頁面上。

2

使用以下修改後的代碼來獲得您在e期望中的結果。 您可以通過使用一個服務URL與URL參數一樣val=123

function doGet(e) { 
    Logger.log('in doGet function'); 

    Logger.log(JSON.stringify(e)); 

} 

從服務URL運行此之後運行此代碼檢查,我得到了

[13-10-01 12:28:22:408 IST] in doGet function 
[13-10-01 12:28:22:409 IST] {"queryString":"val=123","parameter":{"val":"123"},"contextPath":"","parameters":{"val":["123"]},"contentLength":-1} 

現在你可以使用你的JavaScript技能從這個JSON獲取所需的內容。

+0

謝謝。但它似乎根本沒有執行腳本... – theworldismyoyster

+0

這對我來說很好,只是用doPost(e) – Jacobvdb

1

下注艾哈邁德讓我在這裏的正軌,我有同樣的問題,並嘗試2天。我在JavaScript和Google Apps腳本中缺乏的一些知識聚集在一起。

試試這個,應該工作,最終使 「易」 :)

function doGet(e) 
    { 
    var c = arguments[0].queryString 
    Logger.log(c); 
    } 

非常感謝瓦卡! :)

Saido

+0

不知道發生了什麼,但它出現,但在部署應用程序窗口中的URL提供的密鑰是不同的比單擊「爲最新代碼測試Web應用程序」(即除了dev和exec之外)之後的版本。一旦我複製了瀏覽器中顯示的鏈接,而不是部署應用程序窗口中提供的鏈接,它就可以工作。但是,我仍然不確定我的步驟是否有問題,或者是否與Google有關。任何人都可以闡明這一點?我認爲它應該是相同的! – theworldismyoyster

0

不知道有什麼事,但它出現,但一旦你點擊「測試Web應用程序爲您最新的代碼」在部署應用程序窗口中的URL提供的關鍵是比一個不同(除dev和exec以外)。一旦我複製了瀏覽器中顯示的鏈接,而不是部署應用程序窗口中提供的鏈接,它就可以工作。但是,我仍然不確定我的步驟是否有問題,或者是否與Google有關。任何人都可以闡明這一點?我認爲它應該是相同的!