AJAX在javascript中调用服务器端功能?

时间:2016-07-28 19:50:08

标签: javascript jquery ajax

我是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中调用此函数,以便在将新对象插入数据库之前检查返回的列表是否为空(因此ID尚不存在)。
我怎么能这样做呢? 我看到的所有示例都从服务器端函数返回string

4 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

如果你只需要使用ajax,最好的选择是XMLHttpRequest,是Vanilla JS,速度更快。

如果您决定使用带有jquery的ajax,则函数为:

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

答案 2 :(得分:0)

我从未做过C#,但您的url参数必须是文件的路径(例如url: Default.aspx)。在您的文件中,您应该具有处理请求的逻辑并调用正确的函数。此功能将检查DB,并将打印结果。

// 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
})

答案 3 :(得分:0)

If you have control of the server-side endpoint, then return whatever you want to indicate no matches - an empty list, null, empty string, etc. Then in the success function check for that.

Note the dataType ajax parameter. That tells the ajax function how to format the response for you to consume. If you are expecting JSON to be returned, use dataType: json and in the success function check for an empty json array result.length === 0. In the case of null or empty string, use a dataType: text and check for result == "null" or result == "". Etc.

If you don't have control of server side then you will need to conform to whatever data it sends back to you. The dataType is still the key though.