【问题标题】:XMLHttpRequest cannot load and Sencha touchXMLHttpRequest 无法加载和 Sencha touch
【发布时间】:2013-06-18 17:30:51
【问题描述】:

大家!我有个问题。当我使用 Ạjax 或 getStore 时,我在控制台 Chrome 中看到错误。

XMLHttpRequest 无法加载。 Access-Control-Allow-Origin 不允许来源。

而且,我的响应结果是失败的。我不知道这个问题与这个结果有关。帮帮我,如果你有解决办法。 :) 谢谢。

当我使用 Ạjax 或 getStore 时,我在 Chrome 的控制台中看到一个错误。

XMLHttpRequest 无法加载。 Access-Control-Allow-Origin 不允许 Origin。

而我的响应结果是失败的。我不知道这个问题与结果有关。

【问题讨论】:

  • 您是从本地网络服务器(如 xampp 或 mamp)运行它吗?如果没有,您应该尝试使用网络服务器运行。
  • 在浏览器旁边发布 ajax 代码和屏幕有助于我们更准确地回答您的问题。
  • 我正在使用Xampp。那么,如何解决呢?谢谢!

标签: sencha-touch access-control


【解决方案1】:

出于安全原因,您不能从浏览器调用任何网络服务,因此您必须在应用端使用 JSONP 代理,或者您必须在服务器端启用 CORS。如果您打算将其构建为应用程序,那么您不必这样做,您所要做的就是在测试时更改浏览器的安全设置。更多详情:How to use json proxy to access remote services during development

【讨论】:

    【解决方案2】:

    当我像这里这样编码时会出现这个问题:

    Ext.Ajax.request({ 
    url: 'http://api....api.php/national',
    useDefaultXhrHeader: false,
    success : function(response, opt) {     
    Ext.Msg.alert('Success', response.responseText); 
    },
    failure : function(response, opt) {
    Ext.Msg.alert('Failed', response.responseText); 
    }   
    });
    

    或者:

    var onlineStore = Ext.getStore('NationStore');
     onlineStore.load(); 
    

    这是关于错误的屏幕截图!谢谢!

    【讨论】:

      【解决方案3】:

      这似乎是跨域 Ajax 调用。浏览器默认是不允许的。 http://en.wikipedia.org/wiki/Same_origin_policy

      你需要实现 CORS http://en.wikipedia.org/wiki/Cross-origin_resource_sharing

      【讨论】:

        猜你喜欢
        • 2012-01-05
        • 2012-08-18
        • 2012-01-15
        • 2023-03-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-25
        • 2014-01-14
        相关资源
        最近更新 更多