从PhoneGap中的JQuery Mobile应用程序访问Web服务

时间:2012-05-25 19:24:56

标签: jquery-mobile cordova

我有一个JQuery Mobile应用程序。此应用需要点击远程Web服务。当我从本地文件系统运行应用程序时,应用程序加载正常。但是,当我点击一个按钮时,我尝试与Web服务进行交互。当我尝试访问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服务器的上下文中运行是不可能的。这就是为什么我想通过我的本地文件系统运行它并且一切正常,我应该很好。我做错了什么?

非常感谢你!

1 个答案:

答案 0 :(得分:1)

检查你的config.xml文件(如果你正在使用Phonegap Build服务 - 否则请检查iOS的.plist文件,Android的AndroidManifest.xml ..),并添加以下行:

<access origin="*" />

如果这样做,那么您可以尝试设置限制性更强的访问规则,如:

<access origin="https://mydomain.com" subdomains="true" />

在服务器端,您需要返回此http标头:

Access-Control-Allow-Origin: *