0

我在使用 ExtJS 时遇到了另一个奇怪的问题。我从我的文件夹 myapp/data/users.json 获取 JSON 数据,但是当我将其更改为指向远程服务器的 URL 地址(http://myserver/users.json 或 .../getusers.php)时,我没有得到任何 json 数据.

我的代码:

Ext.define('APP.store.Users', {
    extend : 'Ext.data.Store',
    model : 'APP.model.User',
    autoLoad : true,

    proxy : {
        type : 'ajax',
        url : 'http://myserver.com/users.json', 
        //api : {
        //    //read : 'data/users.json' // it works OK
        //},

        actionMethods: {
            read: 'GET'
        },
        extraParams: {
            action: 'someaction',
            name: 'user'
        },
        noCache: false,             
        reader : {
            type : 'json',
            root : 'users',
            successProperty : 'success',
            getResponseData : function(r) {
                console.log("RESPONSE in reader: ", r);
            }
        },
        afterRequest : function(request, success) {
            console.log(request, success); // success: either true or false
        },

……

我已经安装了 Apache 服务器来使用 ExtJS,并且可以使用 succ 为 localhost/users.json 加载数据。我认为这个问题可以使我的系统。但是我在关闭防火墙的情况下检查了 Windows XP 和 Windows 7。它没有帮助。

Firebug -> Network 显示远程地址的 Http 代码 200,但在响应选项卡中没有数据(在本例中为 json 结构)。

Request headers from Firebug:
Accept  text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding gzip, deflate
Accept-Language pl,en-us;q=0.7,en;q=0.3
Access-Control-Request-He...    x-requested-with
Access-Control-Request-Me...    GET
Connection  keep-alive
Host    myserver.com // WAS CHANGED
Origin  http://localhost
User-Agent  Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20100101 Firefox/14.0.1

我不知道有什么错。一切似乎都很好。

谢谢你的任何提示。

虚假

4

1 回答 1

1

文档中对此进行了介绍:

AjaxProxy 不能用于从其他域检索数据。如果您的应用程序在http://domainA.com上运行,则它无法从 http://domainB.com加载数据,因为浏览器有一个内置的安全策略,该策略禁止域通过 AJAX 相互通信。

如果您需要从另一个域读取数据并且无法设置代理服务器(某些软件在您自己域的 Web 服务器上运行并透明地将请求转发到http://domainB.com,使其看起来像它们实际上来自http://domainA.com),您可以使用 Ext.data.proxy.JsonP 和一种称为 JSON-P(带有 Padding 的 JSON)的技术,只要服务器在http:// /domainB.com设置为支持 JSON-P 响应。有关详细信息,请参阅 JsonPProxy 的介绍文档。

于 2012-08-09T11:00:12.567 回答