header-logo
了解如何以 Wix 建立網站和商家。
了解如何建立、管理並維護 Wix 網站。
管理訂閱、方案與請款單。
處理業務,與會員連繫。
學習如何購買、連結或轉移網站網域。
以進階功能提升效率。
尋求解決方法,了解已知問題,或聯絡我們。
placeholder-preview-image
以課程和教學加強技能。
學習網頁設計、行銷等範疇的秘訣。
學習如何提升來自搜尋引擎的自然網站流量。
以全端平台建立自訂網站。
與專家配對,幫助實現目標。
placeholder-preview-image

關於 Web Method

1 分鐘
Wix 允許您為網站新增後端和前端程式碼。後端程式碼在伺服器上執行,而前端程式碼則在瀏覽器中執行。若要從前端呼叫後端程式碼,您可以使用稱為 Web Method 的特殊函式類型。Wix 會處理啟用此存取權所需的所有後端與前端通訊。本篇文章將說明 Web Method 的使用方法。

什麼是 Web Method?

Web Method 是用於匯出後端函式的包覆(Wrapper)。這些包覆不僅界定匯出的函式,還能為其設定權限。每當在前端呼叫該函式時,系統就會套用這些權限。Web Method 僅能在副檔名為 .web.js 的檔案中界定。
您可以透過從 wix-web-module 模組匯入 webMethod 函式和 Permissions 枚舉來界定 Web Method。界定 Web Method 時,一律需要匯入這些內容。webMethod 函式接收 2 個引數:權限和函式。權限界定誰可以從前端呼叫該函式。Permissions 枚舉包含各種可能的權限。函式則是您想要匯出的後端函式。
以下是在 .web.js 檔案中使用網頁方法包覆來界定後端函數的範例:
1import {Permissions, webMethod} from "wix-web-module";
2
3export const multiply = webMethod(Permissions.Anyone, (a,b) => a * b);
在此範例中,使用 webMethod 包覆界定 multiply 函式。Permissions.Anyone 引數表示任何人都可以從前端呼叫此函式。

了解權限

後端界定函式時,即可界定 Web Method 的權限。一旦為函式界定權限,從前端呼叫該函式時都會套用該權限。權限共有 3 個選項:
  • 任何人:任何網站訪客皆可從前端呼叫函式。
  • SiteMember:僅限已登入的網站會員可從前端呼叫函式。
  • 管理員:僅限網站管理員可從前端呼叫函式。
以下是在 .web.js 檔案中界定各類權限函數的範例:
1import {Permissions, webMethod} from "wix-web-module";
2
3// Anyone can call this function
4export const multiply = webMethod(Permissions.Anyone, (a,b) => a * b);
5
6// Only members can call this function
7export const add = webMethod(Permissions.SiteMember, (a,b) => a + b);
8
9// Only admins can call this function
10export const subtract = webMethod(Permissions.Admin, (a,b) => a - b);
在此範例中,任何人都可以呼叫 multiply 函式,只有已登入的網站會員可以呼叫 add 函式,而只有網站管理員可以呼叫 subtract 函式。

從前端程式碼呼叫後端函式

使用 Web Methods 界定後端函式後,即可將其匯入前端程式碼檔案並進行呼叫。請注意,所有匯入的後端函式皆為非同步。
以下是從前端呼叫後端 multiply 函式的範例:
1import {multiply} from 'backend/myModule.web';
2
3$w.onReady(async function () {
4  multiply(5, 3).then((result) => {
5    console.log(result); // Logs 15
6  });
7});
在此範例中,從後端模組匯入 multiply 函式,然後在前端呼叫。結果會記錄到主控台。