我在本地 pc 上部署了 JSON 服务,我正在使用 ASP.net/C# 并且在 IE 9 中返回的数据是有效的 JSON 响应,并通过格式化程序和解析器进行了检查。
下面是 JQuery 调用(使用 JQuery 1.7.1 版),我正在制作一个 HTML 文件。
http://mylocalhostpc:2483/Portfolio.html
<script type="text/javascript">
$(document).ready(function () {
$.ajax({
url: "http://mylocalhostpc/JSONService/ServiceHandler.ashx?seed=ptr&cnt=2",
contentType: "application/json; charset=utf-8",
type: "GET",
dataType: 'json',
data: {},
success: function (data) {
if (data.results[0]) {
var htmlText = data.results[0];
var jsonObject = parseAndConvertToJsonObj(htmlText);
} else {
document.getElementById("footer-bottom").innerHTML = "Could not load the page.";
}
},
error: function (xhr, status,thrownError) {
switch (xhr.status) {
case 200:
alert(xhr.status + ":- " + thrownError);
break;
case 404:
alert('File not found');
break;
case 500:
alert('Server error');
break;
case 0:
alert('Request aborted: ' + !xhr.getAllResponseHeaders());
break;
default:
alert('Unknown error ' + xhr.status + ":- " + thrownError);
}
}
});
});
我每次都收到“请求中止:真”的错误消息。但是,当我检查 URL 时:
http://mylocalhostpc/JSONService/Default.aspx?seed=ptr&cnt=2
以下数据已成功重新调整。
{ "Table" : [ {
"Product_Active" : true,
"Product_DateAdded" : "/Date(1349352480000+0530)/",
"Product_ISBN" : "9788179637494",
"Product_Id" : 71,
"Product_Price" : 45,
"Product_Rating" : 5
},
{
"Product_Active" : true,
"Product_DateAdded" : "/Date(1349352480000+0530)/",
"Product_ISBN" : "9789350492536",
"Product_Id" : 142,
"Product_Price" : 150,
"Product_Rating" : 5
}
] }
web.config 文件代码
<urlMappings>
<add url="~/Default.aspx" mappedUrl="~/ServiceHandler.ashx"/>
服务处理程序背后的代码 - ServiceHandler.ashx.cs
public class ServiceHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
if (context.Request.QueryString["seed"] != null)
{
string searchstring = string.Empty;
Products oProducts = new Products();
context.Response.ContentType = "text/json";
switch (context.Request.QueryString["seed"].ToString())
{
case "pra":
// prODUCT aLL
context.Response.Write(ProcessingRequest.Serialize(oProducts.getAllProducts("0", "")));
break;
case "ptr":
// pRODUCTS tOP rATED
searchstring = context.Request.QueryString["cnt"] == null ? "20" : context.Request.QueryString["cnt"].ToString();
context.Response.Write(ProcessingRequest.Serialize(oProducts.getTopRatedProducts(searchstring)));
break;
default:
context.Response.Write("Invalid service request, please check the url.");
break;
}
context.Response.End();
}
else
{
context.Response.Write("Invalid service request, please provide valid seed.");
context.Response.End();
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
我在哪里犯了任何错误,请帮我解决这个问题?
我也尝试将 dataType 用作“jasonp”和“脚本”,但运气不好,错误更改为“未知错误未定义”
PS:经过更多努力,我得到了以下错误:
在我的 jquery 错误处理程序中添加了一个代码
case 200:
alert(xhr.status + ":- " + thrownError);
break;
它返回了我的错误代码
200:- 错误:未调用 jQuery171049959372938610613_1356351917595