如何处理jSON XMLHttpRequest响应?

时间:2011-04-21 14:42:57

标签: javascript asp.net json xmlhttprequest response.write

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

js code

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 ....
....
..
"

3 个答案:

答案 0 :(得分:0)

您需要Response.Clear()清除Response.Write

之前的回复

答案 1 :(得分:0)

你想在写jsonData之后做Response.Clear()然后再做Response.End()。

然后你需要在javascript中处理JSON响应。我推荐Crockford's JSON library

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

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

PPS。如果你最终使用WebMethods,this article非常好。

答案 2 :(得分:0)

您的cs代码未生成有效的JSON(除了在JSON数据之后显示其他内容)。所有JSON描述符必须是双引号,因此必须使用任何字符串值。通过冒号将值与其描述符分开。例: {“success”:false,“message”:“它不起作用”}。

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