【发布时间】:2014-03-04 23:16:57
【问题描述】:
我确信这很简单,但我已经搞砸了好几天,这让我发疯了!
我无法从 AJAX 请求中获取正确的 JSON。有趣的是,同样的问题发生在使用 XML 而不是 JSON 时,所以我真的很困惑。我为你们简化了一些事情(不改变问题):
ajax.php:
header("Content-type: application/json;");
$data = file_get_contents($_REQUEST['url']);
echo $data;
page.php:
$.post('ajax.php', { url: 'https://apps.nlm.nih.gov/medlineplus/services/mpconnect_service.cfm?mainSearchCriteria.v.cs=2.16.840.1.113883.6.103&mainSearchCriteria.v.c=300.02&knowledgeResponseType=application/json' }, function(data){
console.log(data);
});
控制台输出(注意 feed.entry 的长度为 0):
Object {feed: Object} feed: Object author: Object base: "http://www.nlm.nih.gov/medlineplus/" category: Array[4] entry: Array[0] id: Object lang: "en" subtitle: Object title: Object updated: Object
如果您访问该 URL,您可以清楚地看到该条目的长度为 1。这才是真正让我困惑的地方:
如果我去 ajax.php 并复制输出,然后让 ajax.php 直接回显数据,控制台会记录正确的信息。谁能解释这是为什么,或者如何解决?
编辑:
为了更清楚一点,这里是两个 JSON 树(第一个解析不正确,第二个正确):
【问题讨论】: