【问题标题】:How load xml data from another domain如何从另一个域加载 xml 数据
【发布时间】: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 阅读器

标签: javascript ajax sencha-touch


【解决方案1】:

1) 如果您有权访问后端,则可以启用跨源资源共享 (CORS): how to do it。它将允许您从另一个域获取 xml 数据。

2) 如果不是,您可以使用 YQL(但它看起来像脏 hack):here

3) 无论如何,当您在移动设备上运行应用程序时,这个问题应该会消失。

4) 如果您想找到在桌面浏览器上测试您的应用程序的解决方案,我建议您使用 chrome。因为有一种方法可以禁用此安全限制:

chrome.exe --disable-web-security

5) 最后一个技巧是寻找 JSON 服务,因为 JSONP 请求没有这样的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-29
    • 1970-01-01
    • 2018-01-08
    • 1970-01-01
    相关资源
    最近更新 更多