Jquery Ajax调用接受json,但控制器返回html
因此,我一直在成功地使用$.getJson()获取数据。在本例中,我需要从服务器同步获取数据,因此我使用:Jquery Ajax调用接受json,但控制器返回html,jquery,ajax,get,jsonresult,asp.net-mvc-controller,Jquery,Ajax,Get,Jsonresult,Asp.net Mvc Controller,因此,我一直在成功地使用$.getJson()获取数据。在本例中,我需要从服务器同步获取数据,因此我使用: $.ajax({ type: "GET", async: false, url: "/Mapping/MappingExists?id=" + id, dataType: "json", success: function (data) { alert("SUCCESS"); EnableAll("disableEle
$.ajax({
type: "GET",
async: false,
url: "/Mapping/MappingExists?id=" + id,
dataType: "json",
success: function (data) {
alert("SUCCESS");
EnableAll("disableElement");
},
error: function () {
alert("ERROR");
result = true;
}
});
控制器是:
[HttpGet]
public JsonResult MappingExists(int id)
{
if (Privileges.HasAccess(User.Identity.Name))
{
try
{
var map = new Mapping
{
ID = id
};
return this.Json("{\"MappingExists\": \"" + map.Exists() + "\"}", JsonRequestBehavior.AllowGet);
}
catch (Exception x)
{
return this.Json("{\"Message\": \"Unable to Get Mapping.\"}");
}
}
return null;
}
我在控制器的第一行放了一个断点,但它没有被击中。我在JS控制台中得到一个500错误。我认为抛出错误是因为响应头返回text/html;charset=utf-8,而请求头需要application/json、text/javascript、/;q=0.01
这是一个工作点,然后突然它开始抛出500错误。关于如何解决这个问题有什么想法吗?服务器的主体是什么?这可能与实际的服务器端错误有关。这是服务器端问题。直接转到url显示错误是由发送给控制器的下拉列表中的一个值引起的,该值是字符串,控制器需要一个整数。你的帖子把我弄糊涂了。一方面,标题暗示你得到了错误的数据,另一方面,你的身体暗示动作方法从未被击中。是的,动作从未被击中。我不知道为什么它告诉我响应头返回了一些东西。我认为它返回html是因为它返回了一个错误。