我正在尝试控制我发送回客户端的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 ....
....
..
"
答案 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/以了解与特定语言一起使用的库。