我在使用Phonegap Build在Android应用程序中执行jQuery AJAX POST时遇到问题。我添加了:
对于这个答案,我看起来很高很低。我已经经历了几个帖子,提供了相互矛盾的信息,我已经尝试了很多提到的解决方案,但没有一个有效。
这是我试图做的事情:
$.ajax({
type: "POST",
url: "http://mydomain.com/mypage.aspx/myweb...",
data: "{'sEnquiryText':'" + $("#textareaEnq")[0].value + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data) { // Response function
if (data.d == "Success")
$("#lblInfoMsg").html("Enquiry sent successfully !");
else
$("#lblInfoMsg").html(data.d);
}
});
当安装在不同的域(myseconddomain.com/mywebapp)以及本地IIS(localhost / mywebapp)上时,这可以很好地用作Web应用程序。但它不适用于使用Phonegap Build制作的Android应用程序。
如果有人可以讨论这个问题,我将不胜感激。
答案 0 :(得分:6)
您需要添加“res / xml / config.xml”,例如
<access origin="http://127.0.0.1*"/> <!-- allow local pages -->
<access origin="https://example.com" />
<access origin="https://example.com" subdomains="true" />
<access origin=".*"/>
答案 1 :(得分:2)
我在几个小时后得出结论的答案是Android WebView中不支持XHReq POST,至少在我正在使用的Android 4.03设备上的PhoneGap默认设置中; tcpdump显示请求确实来自设备,对于正确的主机和路径,但作为GET,没有发布数据。我检查了白名单(phonegap默认当前为“*”,所以不是问题),确保这不是“POST缓存”问题(通过在请求URL中添加?t =),并确保我只做了异步请求。相同的结果; POST以GET形式出现,所有帖子数据都将丢失。
我的解决方案是切换到使用GET来实现此功能,以避免需要通过“http://mydomain.com/endpoint?post-data=url-encoded-data-here&t=timestamp-here”等网址发送帖子数据。这是有可能的,因为我也可以控制它的服务器端,如果以这种方式内联数据,则更改端点以允许以前仅通过GET进行POST操作。
更新:我回到这个问题,因为我真的希望POST因其他原因而工作(见帖子#21192670)。
原因 POST失败的原因是因为我的域名的MX配置,以及引用它时选择(或缺少)子域名;我在POST网址中使用了根域,但MX记录指向了wwww.mydomain.com,然后指向了正确的IP地址。 POST没有完成重定向。