1

我有一个 JQuery 移动应用程序。此应用程序需要访问远程 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 服务器的上下文中运行是不可能的。这就是为什么我认为如果我通过本地文件系统运行它并且一切正常,我应该会很好。我究竟做错了什么?

非常感谢!

4

1 回答 1

1

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

<access origin="*" />

如果这可行,那么您可以尝试设置更具限制性的访问规则,例如:

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

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

Access-Control-Allow-Origin: *
于 2012-05-25T19:54:56.123 回答