2012-04-26 102 views
0

我收到以下错误,当我尝试执行通过SenchaTouch发送一些值到Web服务。这是什么意思,我该如何解决这个问题?我的代码的其余部分可以在此SO帖子中找到发送值到网络服务 - BEGINNER

XMLHttpRequest无法加载http://testWebService/service/。 Access-Control-Allow-Origin不允许使用原产地http://localhost

注意:我发现这个link,但它仍然没有帮助。

+0

[XMLHttpRequest无法加载http://www.-**原始http:// localhost:59382不被Access-Control-Allow-Origin允许]的可能重复(http://stackoverflow.com/questions/ 5980200/xmlhttprequest-无法加载-http-www-origin -http-localhost59382-is-not-a) – 2012-04-26 15:57:05

回答

1

如果您计划将您的应用程序作为Web应用程序运行,您必须确保您的Web服务与您的应用程序位于同一个域中。

如果您打算通过phonegap部署sencha touch但希望在浏览器上进行调试,请尝试此操作。

使用Chrome, 禁用跨站点脚本安全: Disable same origin policy in Chrome

或者使用Safari浏览器:(此方法http://localhost将无法​​正常工作)

  1. 本地打开Safari浏览器上的文件( cmd + o并选择您要运行的html文件)

Safari对本地文件没有XSS安全性。

希望它有帮助。

问候, Steve0hh

+0

谢谢你的回答,它在一定程度上对我有所帮助。我是初学者,所以你可以建议我一本书,学习sencha touch,电话差距,并使用Xcode在设备上运行应用程序。我正在尝试一个礼拜的煎茶,并且很辛苦:S – user1315906 2012-04-28 15:02:05

1

这是浏览器阻止跨域XMLHttpRequest。您需要在本地主机上运行Web服务的本地副本,或将您的应用程序上载到TestWebService域。

+0

是否有任何其他方式可以解决此问题? – user1315906 2012-04-26 15:58:41

+0

我被允许访问TestWebService域。我在我的LocalHost,所以无论如何,我可以从本地主机发送请求? – user1315906 2012-04-26 16:00:28

+0

您可以启动本地apache/PHP服务器,并创建一个代理来获取要从服务加载的数据并显示它。由于它在本地主机上运行,​​因此不会违反跨域脚本规则。 – gcochard 2012-04-26 16:02:02

1

见enable-cors.org,使跨来源资源共享。