Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery Phonegap跨域请求在单击时失败,但不是在运行时_Jquery_Ajax_Cordova - Fatal编程技术网

Jquery Phonegap跨域请求在单击时失败,但不是在运行时

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();

我的PhoneGap的“config.xml”、“index.html”文件和我的服务器端脚本被设置为允许CORS,并且一切正常,因为我的
$.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它只发生在AndroidiOS上,在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);}
    });