2012-04-26 112 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,使跨來源資源共享。

相關問題