我试图通过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]错误。
答案 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调试器在动作代码中遇到断点?