【发布时间】:2018-01-23 13:23:51
【问题描述】:
无法使用 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
【问题讨论】:
-
200 响应代码不会“落入错误块”。你确定这就是正在发生的事情吗?你做了什么调试来确认这一点?如果确实调用了
error回调,那么您得到的不是200。 -
@David 当我检查 google chrome 调试器时,我得到 Satus Code: 200 OK 但是错误警报上的断点被击中
-
如果你设置
dataType: "json",并且你的响应不是JSON,错误函数将被调用而不是成功 -
将方法改为
POST -
@Musa 这行得通,因为它进入了 onsuccess 块,但响应文本是页面 HTML
标签: javascript jquery ajax vb.net asp.net-ajax