我有一个JQuery Mobile应用程序。这个应用程序需要打一个远程Web服务。当我从本地文件系统运行应用程序时,该应用程序加载正常。但是,当我点击一个按钮时,我尝试与Web服务交互。当我试图打的web服务,我看到上面写着控制台的错误:从PhoneGap中的JQuery Mobile应用程序打到Web服务
XMLHttpRequest cannot load https://www.mydomain.com/myService/myAction. Origin null is not allowed by Access-Control-Allow-Origin
我试着打下面的代码服务:
var vm = getParameters();
$.ajax({
url: https://www.mydomain.com/myService/myAction,
type: "POST",
data: JSON.stringify(vm),
contentType: "application/json",
success: action_Succeeded,
error: action_Failed
});
我在做什么错?我在这篇文章中尝试了一切,没有任何运气:XmlHttpRequest error: Origin null is not allowed by Access-Control-Allow-Origin。
我的应用程序在我通过Visual Studio运行时工作。我的直觉是,它在当时的web服务器环境中运行。不过,我想通过PhoneGap部署这个。因此,在Web服务器环境中运行是不可能的。这就是为什么我想通过我的本地文件系统运行它,一切正常,我应该很好。我究竟做错了什么?
非常感谢!
非常感谢您的回复。我仍然有点困惑。没有你上面提到的东西,该应用程序在我的开发环境中工作。当我将它推送到我在Web上使用的测试环境中时,它就可以工作。然而,当我有本地文件尝试击中测试环境中托管的Web服务时,它不起作用。你能解释为什么吗?非常感谢。 –
你的开发/测试环境是什么?是从桌面浏览器运行你的页面? “本地文件”是什么意思? 当您的页面位于phonegap容器内(在Android,iOS等应用程序中运行它时),需要上述配置。 – chrisben
在我的应用程序的第一页上,我点击了一个Web服务。这在我的DEV env中运行良好,它在Visual Studio启动的DEV Web服务器上运行。然后我将整个项目推广到我们的TESTING Web服务器(一个IIS 7)中运行。该应用程序在那里工作罚款。然后,当我尝试通过电话模拟器打开服务时,它不起作用。由于PhoneGap作为本地文件加载(http://jquerymobile.com/demos/1.1.0/docs/pages/phonegap.html),因此我决定在Chrome中从本地计算机打开index.html文件。我确保它指向了TEST服务网址。但是,我仍然遇到提及的错误。 –