Jquery Phonegap跨域请求在单击时失败,但不是在运行时
我的PhoneGap的“config.xml”、“index.html”文件和我的服务器端脚本被设置为允许CORS,并且一切正常,因为我的Jquery Phonegap跨域请求在单击时失败,但不是在运行时,jquery,ajax,cordova,Jquery,Ajax,Cordova,我的PhoneGap的“config.xml”、“index.html”文件和我的服务器端脚本被设置为允许CORS,并且一切正常,因为我的$.ajax()调用在运行时调用时不会出错 我发现我的$.ajax()调用失败1并返回“错误发生:0错误”仅在单击时执行,因为在运行时调用它们返回的数据正确无误,所以问题可能是PhoneGap中的单击事件吗?这是我的密码: $(".form-submit").click(function(e) { $(".ui-loader").show();
$.ajax()
调用在运行时调用时不会出错
我发现我的$.ajax()
调用失败1并返回“错误发生:0错误”仅在单击时执行,因为在运行时调用它们返回的数据正确无误,所以问题可能是PhoneGap中的单击事件吗?这是我的密码:
$(".form-submit").click(function(e) {
$(".ui-loader").show();
$.ajax({
url: "http://www.domain.com/app-scripts/search-flight.php",
method: "POST",
data: { flight: $("#flightnumber").val() },
success: /* Success function */,
error: function(xhr) {alert("An error occured: " + xhr.status + " " + xhr.statusText);}
});
});
我真的不明白为什么在运行时请求AJAX时它能正常工作:
$(document).ready(function(e) {
$.ajax({
url: "http://www.domain.com/app-scripts/search-flight.php",
method: "POST",
data: { flight: "KP 452B"},
success: /* Success function */,
error: function(xhr) {alert("An error occured: " + xhr.status + " " + xhr.statusText);}
});
});
请帮助我,我正处于这个项目的最后阶段,我想继续下去
1它只发生在Android和iOS上,在Windows Phone上正常工作尝试使用async:false进行ajax调用&如果您的响应是JSON 然后使用数据类型:“json”或“jsonp”
那么,您会得到什么错误消息???是
$(“#flightnumber”).val()
返回预期值?您是否通过单击提交表单。表单提交?这个选择器名称假定是,然后您应该阻止表单提交,以便让您的ajax请求有机会提交complete@A.Wolff$(“#flightnumber”).val()返回预期值。是的,我通过点击提交表单,一切正常,因为在windoesPhone和chrome上都可以。事实上,如果在$(document).ready()
(请参见第一个代码段)中执行,则相同的请求返回正确的数据,如果在单击时执行,则返回失败的数据(请参见第二个代码段)。我想android上phonegap中的点击事件可能有问题?请帮助我,这是一个多星期,我正在寻找一个解决方案,我不能处理它!!!!好的,我不是phonegap开发人员,但如果提交了表单,那么您的ajax请求可能会被中止,因此返回错误。为什么在提交表单的同时发送ajax请求?如果您同时需要这两种行为,那么我的赌注是尝试:$.ajax({context:$(this).closest('form')[0],…,success:function(){this.submit();})代码>和设置e.preventDefault()代码>仍然在单击处理程序中(不是在任何ajax回调中),我想我会绞死我。出于我不知道的设计目的,一些设计师将jquery移动属性data ajax=“false”
放在表单中,告知jquery mob以默认方式提交表单,而不使用ajax。谢谢@A.Wolff,您的帮助引导我找到了解决方案,我将发布一个解释解决方案的答案,我将感谢您的全力帮助,再次感谢您!!;)谢谢你的回答,我试过这个,但它不是解决办法,无论如何在这方面帮了我一点忙。
$.ajax({
url: "http://www.domain.com/app-scripts/search-flight.php",
method: "POST",
dataType: "json", OR "jsonp",
async: false,
data: { flight: $("#flightnumber").val() },
success: /* Success function */,
error: function(xhr) {alert("An error occured: " + xhr.status + " " + xhr.statusText);}
});