0

我正在尝试使用 Sencha Touch 编写一个最终针对 iOS 和 Android 的应用程序。它应该登录到公司 Web 服务器,然后检索和解析一些 JSON 数据。应该很简单。但是我对 Sencha 和 Javascript 都很陌生,所以我很难进行这种客户端身份验证。我什至似乎无法通过我的开发机器上的网络浏览器对其进行身份验证。

我使用此链接来帮助创建我的登录页面: http:
//miamicoder.com/2012/adding-a-login-screen-to-a-sencha-touch-application/

但是当我尝试登录时,我似乎收到以下错误消息和一个空对象:

XMLHttpRequest cannot load https://www.server.com/index.html?=_dc1234567890123
Origin http://localhost:8000 is not allowed by Access-Control-Allow-Origin.

有没有人有任何关于让这个应用程序登录的建议或好的资源?任何帮助将不胜感激!

4

3 回答 3

0

史蒂夫,返回“不允许”错误是因为您的登录请求违反了浏览器的同源策略(本质上它表明所有 XhrHttpRequests 必须转到最初加载页面的同一域)。

一些浏览器提供了暂时禁用此错误的方法(这对于短期开发目的可能很好),但从长远来看,您需要将应用程序托管在与后端服务器相同的域中,或者考虑使用CORSJSONP用于您的请求。

于 2013-10-16T04:04:27.647 回答
0

您的 AJAX 请求违反了 Same-Origin-Policy。这就是您收到错误消息的原因。如果您使用 chrome 进行调试,您可以通过执行以下操作禁用跨域 Javascript 安全性:

对于 Windows:

1) 在桌面上创建 Chrome 的快捷方式。右键单击快捷方式并选择“属性”,然后切换到“快捷方式”选项卡。
2) 在“目标”字段中,附加以下内容:–args –disable-web-security

对于 Mac,打开终端窗口并从命令行运行:

打开 ~/Applications/Google\ Chrome.app/ –args –disable-web-security

对于 Ubuntu,打开终端窗口并运行此表单命令行:

打开 /usr/bin/ 并执行 ./google-chrome --disable-web-security

于 2013-10-17T08:01:05.457 回答
0

有一个 chrome 的扩展可以工作: Allow-Control-Allow-Origin。如果您想在浏览器启动时激活它,您必须按下图标。

于 2017-04-30T10:10:42.813 回答