0
我正在研究一个基本的ASP.NET & AJAX/JSON任务,我很沮丧地使它工作。其中一个要求是创建一个AJAX/JSON方法来对SQL DB数据进行一些操作。尽管200 OK状态,为什么AJAX JSON响应失败?
为了完成这一点,我用下面的代码:
在ASPX:
$.ajax({
type: "GET",
dataType: "json",
url: "Retrieve",
success: function (data) {
alert(data);
var col;
for (col in data) {
alert(col);
addRow(data[col].id, data[col].Name, data[col].catagory, data[col].difficulty, data[col].company, data[col].price, '#products');
}
},
error: function() {
alert("1");
}
在“retrieve.aspx”页面(代码创建了JSON数据的一部分):
Response.ContentType = "application/json; charset=utf-8";
bool val1 = (System.Web.HttpContext.Current.User != null) && System.Web.HttpContext.Current.User.Identity.IsAuthenticated;
string category = Request.QueryString["category"];
//string a = JsonConvert.SerializeObject(getProducts(category));
var a = getProducts(category);
// instantiate a serializer
JavaScriptSerializer TheSerializer = new JavaScriptSerializer();
var TheJson = TheSerializer.Serialize(a);
Response.Write(TheJson);
最后但并非最不重要的,如果我试图改变数据类型为文本,它会显示内容是用HTML网页代码中的JSON结构化的文本一起。
我在这里错过了什么?
'Response.End'通常是一个很糟糕的解决方法,可以用其他方式解决问题。它很难通过内部做线程中止来结束请求。即使[文档](https://msdn.microsoft.com/en-us/library/system.web.httpresponse.end(v = vs.110).aspx)说:_“此方法仅用于兼容性与ASP“_ –
@JamesThorpe,的确,谢谢指出。研究了一下,学到了很多,更好的选择更新了答案 – Andrei
这就是为什么我喜欢这样 - 每个人都可以学习:) –