如何从另一个域加载 xml 数据
Posted
技术标签:
【中文标题】如何从另一个域加载 xml 数据【英文标题】:How load xml data from another domain 【发布时间】:2012-02-16 14:23:50 【问题描述】:我需要从另一个域的服务中加载一些 xml 数据。如果我使用 ajax 请求,我会得到“Access-Control-Allow-Origin 不允许 Origin null。”。 我尝试将 Store 与 scriptag 代理和 xml 阅读器一起使用,但我得到 Uncaught SyntaxError: Unexpected token
var myStore = new Ext.data.Store(
model: 'myModel',
proxy:
type: 'scripttag',
url : url,
reader:
type: 'xml',
root: 'users'
,
autoLoad: true
);
问题:如何使用 sencha 或其他 javascript 库从另一个域加载 xml 数据。
【问题讨论】:
您是否可以控制发送 XML 的后端?如果不是你不能这样做...... 如果您可以控制提供 html 的域/服务器,则可以在该 Web 服务器上设置代理。 scripttag 仅适用于 json 阅读器 【参考方案1】:1) 如果您有权访问后端,则可以启用跨源资源共享 (CORS): how to do it。它将允许您从另一个域获取 xml 数据。
2) 如果不是,您可以使用 YQL(但它看起来像脏 hack):here
3) 无论如何,当您在移动设备上运行应用程序时,这个问题应该会消失。
4) 如果您想找到在桌面浏览器上测试您的应用程序的解决方案,我建议您使用 chrome。因为有一种方法可以禁用此安全限制:
chrome.exe --disable-web-security
5) 最后一个技巧是寻找 JSON 服务,因为 JSONP 请求没有这样的问题。
【讨论】:
以上是关于如何从另一个域加载 xml 数据的主要内容,如果未能解决你的问题,请参考以下文章