1

因此,我正在开发一个存在于另一台服务器上的新闻提要以及该提要描述的静态 PDF 文档。

我正在尝试实现仅客户端的提要解析,因为我不确定后端服务器的功能是什么。

作为一种快捷的解决方法,我使用Blastcasta.com将 Atom 提要解析为 JSON

url = "http://www.blastcasta.com/feed-to-json.aspx?feedurl=http://[atomLocation]/newsletter.atom"

data = {}
$.ajax({
  url: url + "?callback=?",
  dataType: "jsonp",
  data: data,
  success: function(data) { onSuccess(data); },
  error: function() { alert('Failed to parse feed'); },
});

如果我将 dataType 设置为“application/json”,我会收到一个跨源错误。如果我将它设置为“jsonp”,我会得到“语法错误:意外令牌:”。

据我了解, jsonp 是 json 包装在一个函数或类似的东西中。

是否有合理的解决方法,或者我将不得不“接受它”并开发服务器端 atom-to-jsonp 服务?

4

1 回答 1

1

该服务返回 JSON 或类似的东西:

variable = {...}

如果param设置了 url 参数,但没有设置 JSON-P :(

使用dataType: "jsonp"不能工作,dataType: "json"也不能工作,因为该服务不允许跨域 ajax 请求(因为没有设置 Access-Control-Allow-Origin 标头 -> 请参阅:CORS

一种解决方法是插入这样的<script>标签:

<script type="text/javascript" src="http://www.blastcasta.com/feed-to-json.aspx?feedurl=<your url here>&param=myVariable"></script>

然后myVariable包含返回的对象。

示例演示:http: //jsfiddle.net/kFL9G/

于 2012-04-18T01:21:56.000 回答