Javascript Jquery调用时获取对象错误
我试图通过jQueryAjax调用apiJavascript Jquery调用时获取对象错误,javascript,jquery,asp.net-mvc-4,asp.net-web-api,asp.net-ajax,Javascript,Jquery,Asp.net Mvc 4,Asp.net Web Api,Asp.net Ajax,我试图通过jQueryAjax调用api $(document).ready(function () { jQuery.support.cors = true; $.ajax({ url: 'http://[MyServername]/api/tracking/GetLocation?DeviceId=352136061098261', type: 'GET', dataType: 'json', conte
$(document).ready(function () {
jQuery.support.cors = true;
$.ajax({
url: 'http://[MyServername]/api/tracking/GetLocation?DeviceId=352136061098261',
type: 'GET',
dataType: 'json',
contentType: 'application/json; charset=utf-8',
success: function (data) {
alert('success');
},
error: function (error) {
alert('error');
}
});
它直接移动到error函数并返回[object object]error。要了解发生了什么,不要使用接收单个参数的函数,而是使用带有此签名的函数:
Function( jqXHR jqXHR, String textStatus, String errorThrown )
寻找错误
这将为您提供更多信息
但是,比这更好的是,使用浏览器调试工具:按F12键访问它。如果是Firefox,你可以安装Firebug。此工具允许您检查网络流量(即发送了哪个请求,获得了哪个响应)
此外,如果您使用console.log(jqXHR,textStatus,errorshown)
并打开控制台(按F12键),您将更清楚地看到返回的数据。如果只使用alert()
就看不到详细信息,这是一种更为突出的调试方式(不推荐:在没有其他补救措施的情况下使用!!)
另一个好的调试方法是使用REST调试工具,如Chrome,它允许您使用不同的方法(POST、PUT、GET、DELETE…)与Web API交互,并以不同的方式(JSON、表单编码、XML)发送和接收信息
您还可以使用一个免费的调试工具,该工具可以连接到浏览器以检查请求和响应
注意:所有这些都是强大的debuggint工具,但如果您想获得更多具体信息,请在问题中添加控制器的操作代码:路由、参数绑定、操作代码引发的异常可能存在问题,等等。您的ajax调用是否使用VS调试器在操作代码中命中断点?学习使用
console.log()
方法,alert()
不是调试工具。后端可能有错误,因为它转到了错误函数。@rose我通过fiddler检查了url,得到的JSON响应可能与您的问题有关。此外,在error
函数中,您忘记了警报中的双引号。它应该是警报(“错误”)
。不过,最好使用console.log
进行调试,正如@Satpal所指出的。将错误处理程序更改为error:function(jqXHR,status,error){alert(status+':'+error);}
第一个参数是jqXHR对象,这就是您获取[object object]
的原因。。。正如其他人指出的,使用控制台日志记录,