我正在尝试从我的控制器获取JSON,以便在jQuery中使用。我有以下代码。当我在浏览器中访问URL时,它会返回json,因此我知道控制器正在工作……但我得到了以下结论
获取http://localhost:52802/Checkout/GetContactById?id=1 net::ERR_INCOMPLETE_CHUNKED_ENCODING
客户端jQuery
var theUrl = window.location.origin + '/Checkout/GetContactById?id=' + contactId;
$.ajax({
url: theUrl,
type: "GET",
success: function (result) {
alert("Success");
},
error: function (error) {
alert("Error");
}
});
服务器端控制器
[HttpGet]
public IActionResult GetContactById(int id)
{
Contact contact = this.checkoutDataAccess.GetContactById(id);
return Json(contact);
}
我收到的唯一警报是"Error“
更新
经过更多的研究,看起来一切都在加载...但是我得到了一个错误
无法加载响应数据
在控制台中。
我一步一步地检查了代码,一切都在控制器端工作。我不确定它是否没有正确地格式化JSON,或者我是否没有正确地接收它。不管怎样,我都不知道发生了什么。
发布于 2017-06-10 06:41:33
实际上,由于您将alert(" Error ");Try alert(error);或尝试使用firebug进行调试,您会收到文本错误
发布于 2017-06-14 03:54:49
尝试将数据类型JSON添加到ajax调用。
也许可以尝试在正文中添加参数。
如下所示:
var theUrl = window.location.origin + '/Checkout/GetContactById';
$.ajax({
url: theUrl,
type: "GET",
dataType: "json",
data: { id: contactId },
success: function (result) {
alert("Success");
},
error: function (error) {
alert("Error");
}
});
我建议使用Url.Action助手。
像这样:
$.ajax({
url: '@Url.Action("GetContactById", "Checkout")',
type: "GET",
dataType: "json",
data: { id: contactId },
success: function (result) {
alert("Success");
},
error: function (error) {
alert("Error");
}
});
发布于 2019-02-19 03:59:41
我也有同样的问题,在寻找了几种可能的解决方案后,我尝试使用我的api form Postman,发现我返回的是一个格式错误的JSON。在我的例子中是因为我的ViewModel的一个属性是int[]类型。删除此属性后,我可以正常检索数据。
我希望它能帮上忙。
https://stackoverflow.com/questions/44467409
复制相似问题