【发布时间】:2010-12-05 18:28:07
【问题描述】:
好的,所以我正在构建一个提供音乐信息(即关于艺术家、专辑、歌曲等的信息)的网络应用程序,并且我正在使用 MusicBrainz API 作为信息源。
现在,我正在尝试使用 jQuery 从 API 调用加载数据并对其进行处理。这是我正在使用的代码:
Code:
queryString="http://musicbrainz.org/ws/1/artist/?type=xml&name="+qry+"&limit=10";
$.ajax({url: queryString, dataType: ($.browser.msie) ? "text" : "xml", success: function(data){
alert("success");
var xml;
if (typeof data == "string") {
xml = new ActiveXObject("Microsoft.XMLDOM");
xml.async = false;
xml.loadXML(data);
} else {
xml = data;
};
...
'queryString' 是请求的 URL 字符串,然后我会继续从 'xml' 对象中读取数据。相当简单。
但是,这就是出现问题的地方。该代码在我的计算机上本地运行时可以完美运行,但是当我将所有内容上传到我的 Web 服务器并尝试在那里运行时,它根本不起作用。我做了一些阅读,发现由于安全问题,无法跨不同域进行 AJAX 调用。
所以我已经阅读了许多解决方案,但几乎所有解决方案都需要使用 PHP(我对此一无所知)或以 JSON 格式获取数据(显然不受相同的安全限制)。但是,我的主要问题是 MusicBrainz API 不返回 JSON 格式的数据(实际上它返回的唯一格式是 XML)。
所以无论如何,我基本上只是想知道是否有人可以给我一些帮助或指示我是否以及如何仅使用 JS/jQuery 来获取远程 XML 文件。或者,向我指出另一种方法,它可以由像我这样的完整 PHP 菜鸟完成。
感谢您的帮助!
【问题讨论】:
标签: javascript jquery xml cross-domain