2015-12-03 94 views
0

我有一个调用来获取JSON对象(它恰好是一个Domino视图的内容),然后我将解析它显示。匿名函数在其中有代码,但在这里没有关系,因为它永远不会被调用。在调试阶段(我使用的是Chrome),执行将从$ .get直接跳到下一行,而无需进入成功处理程序。无论使用.get()还是.getJSON(),行为都是一样的。jQuery .get()默默地失败 - 我怎么知道为什么?

$.get(strURL, 
    function(data) {} 
) 

我测试了URL,并通过JSONLint确认它返回有效的JSON。我怎样才能确定是什么导致失败?

+3

'success'是一个回调函数,它只会在GET请求完成时调用。该行执行后不正确。 – BenM

+2

网络检查是否显示XHR请求正在进行?检查网络选项卡。 – Ohgodwhy

+0

可能的重复[如何返回来自异步调用的响应?](http://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-call) – Phil

回答

2

AJAX请求无法成功检索来自不同域,子域,端口或协议的数据。你是否试图访问来自不同领域的数据?

另一个建议是尝试添加代码,以捕获其他事件,显示出低于

$.get(strURL, function(data) { alert("success");}) 
.done(function() {alert("second success");}) 
.fail(function() {alert("error");}) 
.always(function() { alert("finished"); }); 
+0

.fail获取jqXHR对象,您可以从中获取错误详细信息。 – artm

+0

谢谢,但没有。源位于同一主机上。我尝试添加.fail函数,但是它告诉我*它失败了,它不告诉我为什么它失败了。 –

0

你可以得到一个回应,但不是JSON,例如“无文件找到”当你使用Domino。您可以通过使用responseText属性获得有关错误的详细信息。

.fail(function(jqXHR, textStatus, error) { 
alert("Request failed: " + textStatus + " responseText: " jqXHR.responseText); 
}); 

注意这几乎是@artm所说的,只是在这里给出了代码。

1

Ohgodwhy建议检查“网络”选项卡给了我想要的 - 毕竟不是jQuery问题,而是熟悉Chrome开发工具。

谢谢!

相关问题