javascript - jQuery AJAX 附加到 Json 返回数据 "d:null"

标签 javascript jquery json ajax web-services

嘿,当使用 AJAX POST 方法调用我的网络服务时,我从我的回调中得到了一个奇怪的返回。

Web 服务正在像这样发回 JSON:

Dim ser As New System.Web.Script.Serialization.JavaScriptSerializer()
Dim strResponse As String = ser.Serialize(results)

Context.Response.Clear()
Context.Response.ContentType = "application/json"
Context.Response.AddHeader("content-length", strResponse.Length.ToString())
Context.Response.Write(strResponse)
HttpContext.Current.ApplicationInstance.CompleteRequest()

上面strResponse的值为:

"[{\"Column1\":\"0589S2F\"},{\"Column1\":\"53699FNS\"},{\"Column1\":\"C38VVFD\"},{\"Column1\":\"LFD55F\"},{\"Column1\":\"2ERfG\"},{\"Column1\":\"0079\"},{\"Column1\":\"2054\"},{\"Column1\":\"054FGW\"}]"

出于某种原因,我的 ajax 返回 200 OK 但仍然进入 ERROR 逻辑并显示错误消息:

ERROR: "[{\"Column1\":\"0589S2F\"},{\"Column1\":\"53699FNS\"},{\"Column1\":\"C38VVFD\"},{\"Column1\":\"LFD55F\"},{\"Column1\":\"2ERfG\"},{\"Column1\":\"0079\"},{\"Column1\":\"2054\"},{\"Column1\":\"054FGW\"}]"{"d":null}

注意它是如何将 {"d":null} 附加到我的请求的末尾的……这是从哪里来的,因为我没有在 中发送类似的东西strResponse???

我的ajax请求代码:

var sqlQ = "SELECT TOP 50 LTRIM(RTRIM(REPLACE(OID, ' ', ''))) FROM vwPSDAT WHERE OID != ''";

$.ajax({
     type: 'POST',
     contentType: 'application/json; charset=utf-8',
     dataType: 'json',
     url: 'http://zzzz/Service1.asmx/theQ',
     data: JSON.stringify({ qString: [sqlQ] }),
     async: true,
     cache: false,
     success: function (data) {
        var obj = jQuery.parseJSON(data);
        console.log('done!');                  
     },
     error: function (XMLHttpRequest, textStatus, errorThrown) {
        console.log('ERROR: ' + XMLHttpRequest.responseText);
     }
});

最佳答案

看来我只需要在写入页面之前添加 Context.Response.Flush()

Context.Response.Clear();
Context.Response.ContentType = "application/json";
Context.Response.AddHeader("content-length", strResponse.Length.ToString());
Context.Response.Flush();
Context.Response.Write(strResponse);
HttpContext.Current.ApplicationInstance.CompleteRequest();

一旦我这样做了,一切都很好。

关于javascript - jQuery AJAX 附加到 Json 返回数据 "d:null",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33085057/

相关文章:

javascript - 动画移除元素

javascript - 鼠标移动仅适用于左键

javascript - Kendo Grid ,根据条件在详细网格中显示不同的模板

javascript - 有没有办法让 child 从 jquery 中的某个索引到某个索引

javascript - Angular 没有返回预期值

javascript - 为什么我看不到来自 socket.io-client 和 node.js 的响应?

javascript - kendo ui 列表框删除项目

javascript - 什么是最好的、轻量级的 JSON/ajax 脚本?

显式将字段设置为 null 与不传递该字段之间的 Json 区别

javascript - 需要正则表达式来评估连字符分隔值,其中第一个限制应始终小于第二个限制