在Jquery调用时获取对象对象错误

时间:2014-10-16 07:55:22

标签: javascript jquery asp.net-mvc-4 asp.net-web-api asp.net-ajax

我试图通过Jquery ajax调用api。这是我简单的jquery代码

    $(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');
        }
    });

它直接移动到错误函数并返回[object Object]错误。

1 个答案:

答案 0 :(得分:1)

要了解发生了什么,而不是使用接收单个参数的函数,请使用具有此签名的函数:

Function( jqXHR jqXHR, String textStatus, String errorThrown )

查找错误in jquery ajax docs

这将为您提供更多信息。

然而,要比这更好,请使用浏览器调试工具:按F12进行访问。如果它的Firefox你shpuld安装Firebug。此工具允许您检查网络流量(即,已发送请求以及获取了哪些响应)。

此外,如果您使用console.log(jqXHR, textStatus, errorThrown)并打开consolse(按F12),您将更清楚地看到返回的数据。如果您只是使用alert(),则无法看到详细信息,而且它是一种更加突兀的调试方式(不推荐:在没有其他补救措施时使用它。)。

调试的另一个好方法是使用适用于Chrome的Postman REST client等REST调试工具,它允许您使用不同的方法(POST,PUT,GET,DELETE ...)与Web API进行交互并发送并以不同的方式接收信息(JSON,表格编码,XML)。

您还可以使用Fiddler,这是一个免费的调试工具,可以附加到浏览器来检查请求和响应。

注意:所有这些都是功能强大的调试工具,但如果您想获得更具体的信息,请将控制器的操作代码添加到您的问题中:路由可能存在问题,参数绑定,动作代码引发的异常等。你的ajax调用是否使用VS调试器在动作代码中遇到断点?