2016-02-12 63 views
2

我有一個分享給所有域用戶的插件。 它打開一個包含表單的邊欄。想要從應用程序腳本表單發佈到另一個應用程序腳本

我希望表單以基本的客戶端 - 服務器方式發佈到另一個Apps腳本(實現的webapp)。 另一個腳本(以admin身份運行)應該使用用戶提交的數據進行操作。

Script1.html(在插件,任何用戶都可以運行它)

<form id="myForm" method="post" action="https://script.google.com/a/macros/<domain>/s/<script2-id>/exec"> 
    <input name="name" type="text" value=""/> 
    <input name="message" type="text" value=""/> 
    <input type="button" value="send" formmethod="post" onclick="google.script.host.close();" /> 
</form> 

SCRIPT2(總是由同一個管理運行)

function doPost(formInfo){ 
    doStuff(formInfo.name,formInfo.message) 
} 

這可能嗎?我究竟做錯了什麼。這可以以安全的方式完成嗎?

+0

你想要的Web應用程序在當前的瀏覽器選項卡中打開?在另一個瀏覽器標籤中打開? Web App是否已經開放? Web應用程序是否在完全不同的計算機上獲取更新的信息? –

+0

在IFRAME沙盒模式下使用'method ='post'',並在表單中提交按鈕將導致頁面消失。如果您希望在新的瀏覽器選項卡中打開Web應用程序,則您需要使用帶有'target = _blank','Google'的鏈接或在JavaScript客戶端使用其中一個'window.location' DOM方法碼。 –

+0

我的問題不在於用戶得到(),與他們發佈的內容()相同。我想發送數據到webapp,而不是從它接收。 –

回答

0

它在web應用程序中沒有任何安全性(任何人都可以訪問,甚至匿名訪問)。否則,它會強制Google Signin。

sidebar.html(從client-script.gs)

<form id="myForm" target="_self" method="post" action="https://script.google.com/macros/s/SCRIPT_ID/exec"> 
    <input name="name" type="text" value=""/> 
    <input name="message" type="text" value=""/> 
    <input type="submit" value="send" /> 
</form> 
+0

此解決方案將更好地使用domain-only-access for網絡應用程序,但這個問題超出了我。 –

相關問題