0

所以我有一个 Typepad 博客,想将一些帖子加载到我自己的网站上。我查看了 Typepad API,但它似乎过于复杂。Typepad 还提供了一个小部件,但它只显示帖子标题和 href,我也需要内容。

所以这就是我正在做的事情,我在页面中包含了 jQuery:

$.ajax({
    url: 'http://notes2self.typepad.com/notes/atom.xml?callback=?',
    type: 'GET',
    dataType: 'jsonp',
    success: function(feed) {
        console.log(feed);
    },
    error: function(err) {
        console.log(err);
    }
});

它记录“成功”,但记录的对象看起来像一个 XMLHttpRequest 响应,我希望它简单地返回 xml 内容:

对象{readyState:4,状态:200,状态文本:“成功”}

此外,在 OSX 上的 Chrome 中,控制台在 atom.xml 的第 1 行记录了一个错误:

未捕获的 SyntaxError:意外的令牌 <

我显然做错了一些非常基本的事情。有什么提示可以为我指明正确的方向吗?

4

1 回答 1

0

我在这里猜测返回类型无效。如果你去http://notes2self.typepad.com/notes/atom.xml?callback=?然后您将获得 XML 格式的结果(检查源代码)。

您的 jQuery 期望返回类型为 JSON,因此无法解析结果。这显示在带有意外“<”字符的 Chrome 错误消息中。

为了证明这一点,请尝试:

$.ajax({
    url: 'http://notes2self.typepad.com/notes/atom.xml?callback=?',
    type: 'GET',
    dataType: 'xml',
    success: function(feed) {
        console.log(feed);
    },
    error: function(err) {
        console.log(err);
    }
});

看看是否有任何结果返回(提要)。

这篇文章描述了如何为跨域请求完成基于 XML 的返回类型:http ://www.isgoodstuff.com/2012/07/22/cross-domain-xml-using-jquery/

于 2013-01-18T16:01:37.017 回答