Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery调用时获取对象错误_Javascript_Jquery_Asp.net Mvc 4_Asp.net Web Api_Asp.net Ajax - Fatal编程技术网

Javascript Jquery调用时获取对象错误

Javascript 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

我试图通过jQueryAjax调用api

    $(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]
的原因。。。正如其他人指出的,使用控制台日志记录,