Web方法使用ajax返回简单字符串

时间:2018-01-23 13:23:52

标签: javascript jquery ajax vb.net asp.net-ajax

无法使用ajax调用从服务器返回一个简单的字符串。我没有在ajax上获得404,而是200,statusText:" OK"。

我收到了返回的整页HTML,它正在落入错误块。

我已将配置编辑为包含:

<jsonSerializationmaxJsonLength="2147483647"/>

这是我的AJAX:

$(function () {
    $.ajax({
        type: 'GET',
        contentType: "application/json; charset=utf-8",
        url: $(location).attr('href') + "/GetYard",
        dataType: "json",
        success: OnSuccess,
        failure: function (response) {
            alert(response.d);
        },
        error: function (response) {
            alert(response.d);
        }
    });
});
function OnSuccess(response) {
    console.log(response);
}

我的VB.Net代码:

<WebMethod>
Public Shared Function GetYard() As String

    Return "TEST"
    'HttpContext.Current.Response.BufferOutput = True
    'HttpContext.Current.Response.ContentType = "application/json"
    'HttpContext.Current.Response.Write("Test")
    'HttpContext.Current.Response.Flush()
End Function

1 个答案:

答案 0 :(得分:0)

这需要在脚本管理器中启用EnablePageMethods选项:

<asp:ScriptManager .. EnablePageMethods="True" />

如果您阅读了onsuccess(参考您的评论)返回的HTML,它可能会说您需要启用EnablePageMethods或其他一些配置选项。

确保完成;这里也是online example,但看起来你的方法反映了这一点,除了它使用&#34; POST&#34;作为类型而不是&#34; GET&#34;。