我有一个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服务器的上下文中运行是不可能的。这就是为什么我想通过我的本地文件系统运行它并且一切正常,我应该很好。我做错了什么?
非常感谢你!
答案 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: *