2013-03-12 66 views
1

我正在运行我的local server(localhost:3000)上的Padrino app。我正在公开一个get call/location,它返回一个json响应。我从单独编写的JavaScript代码中访问此API。下面是我写:未在jquery中调用成功回调处理程序

$.get("http://localhost:3000/location", function(data) {  
    alert("Inside callback" + data); 
}); 

(PS:使用jquery 1.9.1,试过的getJSON也)的HTTP终点击中并使用JSON响应,但成功的回调处理程序没有被调用返回sucess码200的JavaScript。为什么会发生?任何方式来这样做?

+0

如果你想获得JSON使用'$ .getJSON '而不是'$ .get'。 (http://api.jquery.com/jQuery.getJSON/) – Kasyx 2013-03-12 11:26:22

+0

也使用getJSON。 – 2013-03-12 11:54:20

回答

0

你在最后缺少一个),如:

$.get("http://localhost:3000/location", function(data) {  
alert("Inside callback" + data); 
}); 

对于JSON,你可能要考虑使用的getJSON代替,并捕捉错误,如果出事了。

您还可以使用低级别的Ajax调用,并检查是否存在错误:

$.ajax({ 
    url: 'http://localhost:3000/location', 
    type: 'GET', 
    success: function(data){ 
     alert('success'); 
    }, 
    error: function(request,error) { 
     alert(request.responseText); 
    } 
}); 
+0

尝试getJSON也失踪)是一个错字。请原谅我......任何其他解决方案? – 2013-03-12 11:52:17

+0

服务器返回的是什么?这可能是它没有返回正确的响应。 – 2013-03-12 12:07:14

+0

服务器正在返回200 OK响应...这意味着它正确点击,但在javascript – 2013-03-12 12:08:15

0

尝试这样的:

$(document).ready(function(){ 
    $.get("http://localhost:3000/location", function(data) {  
     alert("Inside callback" + data); 
    });// here you are missed closed parenthesis ')' 
}); 
+0

')'是一个错字。对不起,那...其他任何解决方案? – 2013-03-12 11:53:31

+0

试试我的答案一次,我改变了。 – 2013-03-12 11:56:05

+0

嘿罗汉......我也是这么做的......能够打到http端和gettong 200的成功响应(使用萤火虫验证过),但在响应中没有得到任何答案(不包括第一行在我的问题中,但我正在这样做) – 2013-03-12 12:02:41