我在本地电脑上部署了一个JSON服务,我在ASP.net/C#上工作,IE 9中返回的数据是一个有效的JSON响应,用格式化程序和解析器检查。
下面是JQuery Call(使用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);
}
}
});
});
我收到错误消息“&#39;请求已中止:true&#39;每次。 但是,当我检查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作为&#39; jasonp&#39;和&#39;脚本&#39;同样没有运气,错误更改为“未知错误未定义&#39;
”PS:经过多方努力后,我收到了以下错误:
在我的jquery错误处理程序
中添加了一个代码
case 200:
alert(xhr.status + ":- " + thrownError);
break;
将错误代码作为
返回给我200: - 错误:未调用jQuery171049959372938610613_1356351917595
答案 0 :(得分:0)
我认为你必须这样使用它:
success: function (data) {
$.each(data.Table, function(i, resp){
if (resp) {
var htmlText = resp;
var jsonObject = jQuery.parseJSON(htmlText);
console.log(jsonObject);
} else {
$("#footer-bottom").html("Could not load the page.");
}
});
},
你也可以试试这个:
success: function (data) {
$.each(data.Table, function(i, resp){
console.log(resp);
});
},
答案 1 :(得分:0)
(代表OP发布)。
通过在不同服务器上托管服务和客户端来解决。