繁体   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