1

我正在尝试控制我发送回客户端的 json 响应,但不知道具体如何.. 这是一个简单的演示:

js代码

xhr = new XMLHttpRequest();
xhr.open("POST", "page.aspx", true);
xhr.send();

// handle the response with xhr.responseText

.cs 代码

    bool success = false;
    string message = String.Empty;

    // Create JSON Response
    var jsonData = new
    {
        success = success,
        message = message
    };

    Response.Write(jsonData);    

问题是当我查看 xhr.responseText 时,我看到:

"{ success = False, message = } 
<!DOCTYPE html PUBLIC ....
....
..
"
4

3 回答 3

0

您的 cs 代码未生成有效的 JSON(除了在 JSON 数据之后显示其他内容)。所有 JSON 描述符都必须用双引号引起来,任何字符串值也必须如此。值与它们的描述符用冒号分隔。示例:{"success": false, "message": "It didn't work"}。

查看http://json.org/了解与特定语言一起使用的库。

于 2011-04-21T19:53:01.227 回答
0

您需要先Response.Clear()清除响应Response.Write

于 2011-04-21T14:44:58.467 回答
0

您想在编写 jsonData 后执行 Response.Clear() 和 Response.End()。

然后您需要在 javascript 中处理 JSON 响应。我推荐Crockford 的 JSON 库

我还建议使用 jQuery 的 $.ajax() 函数,而不是手动滚动您自己的 XHR 调用。

PS。Ajax 调用最好对 ASPX 页面上声明的ASHX资源或PageMethods/WebMethods进行。更好的是,放弃 Web 表单并使用 ASP.NET MVC 和从控制器返回的 JsonResults。

聚苯乙烯。如果您最终使用了 WebMethods,那么这篇文章非常棒。

于 2011-04-21T14:45:24.380 回答