【问题标题】:jQuery $.get returns empty, NOT cross-domainjQuery $.get 返回空,而不是跨域
【发布时间】:2012-05-22 21:34:07
【问题描述】:

可能是 $.ajax 和 $.get 最简单的用法,但它失败了。

我正在从同一域的 URL 中提取 HTML:

$.get("/url", function(data) {
    console.log(data);
});

这里的问题是该函数返回空,没有错误,没有“跨域”警报。但是如果我检查网络日志,请求已经成功完成,并且返回了一个完整的 HTML 字符串。

那么,什么可能是垃圾 jQuery?如果响应的格式不喜欢它会卡住吗?

【问题讨论】:

  • 你的意思是data 是未定义的,对吧?实际的$.get 方法总是返回undefined
  • @FishBasketGordo:它实际上返回 jqXHR
  • 实际上控制台部分甚至没有触发。看起来像一个 jQuery 错误,但不幸的是它在检查器中没有告诉我任何内容。
  • @DeLongey: 那么firebug中的网络呢?
  • firebug 说请求也成功了。看起来 jQuery 出于某种原因不喜欢响应

标签: jquery


【解决方案1】:

我不确定为什么会有所作为,但使用这个:

$('#resource-html').load(url);

搞定了。必须与jQuery如何处理数据有关。

更新

我可以确认问题的原因。响应中注入了流氓标头,因此内容类型返回为application/json,尽管它是常规文本。所以很可能 jQuery 试图解析实际上是 HTML 的 JSON,或者完全忽略它。

经验教训:检查您的响应标头。

【讨论】:

  • 为了让 HTML 代码将其加载到 div 中,它应该可以完美运行,但是如果您只想获取一段 HTML 代码的文本,会发生什么情况?加载?您将无法通过此方法做到这一点:-)
  • 是的,不幸的是我知道这一点。我实际上是在使用它来获取服务器资源的 Munin 图munin-monitoring.org。但我要做的是更改 Munin 模板,使它们只输出 JSON,然后使用图形 URL 来构建页面。 :)
  • 该页面是否包含您可能需要的 RSS 提要?还有另一种以这种方式获取数据的方法。是的,最好使用 JSON 并尝试使用 JSON 方法进行解析。
  • 似乎 Munin 图是唯一的输出。我认为除此之外,您还要支付企业支持 LOL。同意 RSS 会很好。
  • 大声笑,你能分享你想要做 $get 的确切链接吗?稍后我会测试一些东西并让你知道。
猜你喜欢
  • 1970-01-01
  • 2021-10-04
  • 2014-02-09
  • 1970-01-01
  • 2012-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-01
相关资源
最近更新 更多