【发布时间】:2013-02-20 00:31:42
【问题描述】:
我在使用 Phonegap Build 的 Android 应用程序中执行 jQuery AJAX POST 时遇到问题。我已添加:
- Config.xml:设置访问源 *
- 所有 HTML 文件:设置 $.support.cors = true; $.mobile.allowCrossDomainPages = true;
- 在远程服务器上:设置 Access-Control-Allow-Origin、Access-Control-Allow-Headers 的值
我一直在寻找答案。我浏览了几篇提供相互矛盾的信息的帖子,并且尝试了很多提到的解决方案,但都没有奏效。
这是我正在尝试做的事情:
$.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 应用。
如果有人可以调查这个问题,我将不胜感激。
【问题讨论】:
-
什么是错误或成功回调?
-
尝试添加一个错误回调处理程序,这样您就可以看到 HTTP 状态代码是什么或错误消息是什么。您能否确定来自 Android 的请求是否到达您的服务器?
-
我添加了
error: function (xhr, ajaxOptions, thrownError) { alert("errorstatus: " + xhr.status + " ajaxoptions: " + ajaxOptions + " throwError: " + thrownError); } -
500 错误表示服务器在处理请求时出现问题。您应该检查以确保您的服务正常工作,并且您正在发送服务处理您的请求所需的所有数据。
-
好的。我得到了这个工作。这是我们的服务器端代码在尝试从 Request 对象中检索 URLReferrer 时抛出错误的问题,当从 file:/// URL 调用时该 URLReferrer 为 NULL。
标签: jquery ajax cordova post build