簡體   English   中英

AJAX調用JavaScript中的服務器端功能嗎?

[英]AJAX call to server side function in javascript?

我是AJAX的新手,我不太清楚如何使用AJAX呼叫格式

$.ajax({
    type: "POST",
    url: "Default.aspx/function",
    data: '{ searchBy: id }',
    contentType: "application/json; charset=utf-8"
}).success(function (result) {
    alert(result);
})

我在.cs文件中有一個函數,該函數應接收字符串ID並返回包含該ID的所有對象的列表。
我想在javascript中調用此函數,以在將新對象插入數據庫之前檢查返回的列表是否為null(因此ID不存在)。
我該怎么做呢?
我看到的所有示例都從服務器端函數返回一個string

[WebMethod]
public static int function(int Id) 
{
    return Id;
}

如果只需要使用ajax,最好的選擇是XMLHttpRequest ,最好是Vanilla JS,更快。

如果決定將ajax與jquery一起使用,則函數為:

$.ajax({
    type: "POST",
    url: "Default.aspx/function",
    data: { searchBy: id },
    dataType: 'json',
    success: function(result) {
        // Do something
    }
});

我從未做過C#,但是您的url參數必須是文件的路徑(例如url: Default.aspx )。 在文件中,您應該具有處理請求和調用正確函數的邏輯。 此功能將檢查數據庫,並打印結果。

// inside Default.aspx
// 1- is there a POST parameter? If so, call foo()

public static string foo(string postParam) {
    // check DB, process
    Print(result)
}

在您的success回調中,檢查是否為null:

.then(function(result) {
    if (result === null) // do stuff
})

如果您可以控制服務器端端點,則返回任何您想要表示不匹配的內容-空列表,空值,空字符串等。然后在成功函數中進行檢查。

注意dataType ajax參數。 這告訴ajax函數如何格式化響應以供您使用。 如果您期望返回JSON,請使用dataType: json並在success函數中檢查空的json數組result.length === 0 如果為null或空字符串,請使用dataType: text並檢查result == "null"result == "" 等等。

如果您無法控制服務器端,那么您將需要遵循其發送回您的任何數據。 盡管dataType仍然是關鍵。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM