Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.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 异步ajax有时在Firefox中不起作用_Jquery_Ajax_Firefox - Fatal编程技术网

Jquery 异步ajax有时在Firefox中不起作用

Jquery 异步ajax有时在Firefox中不起作用,jquery,ajax,firefox,Jquery,Ajax,Firefox,在Firefox中,异步ajax请求在90%的时间内都无法工作。工作时间的10%(在看似相同的条件下)。它在Chrome中100%都能正常工作。此外,如果我检测到浏览器并对Firefox使用async:false,它将100%正常工作。 我在ajax引用的php页面的第一行记录了错误。它没有出现在日志中。控制台中也没有错误,并且没有执行ajax错误函数。下面是一个示例,如果它包含对浏览器的检查,但不包含其他检查,则该示例有效 function myAjax(data) { console.l

在Firefox中,异步ajax请求在90%的时间内都无法工作。工作时间的10%(在看似相同的条件下)。它在Chrome中100%都能正常工作。此外,如果我检测到浏览器并对Firefox使用async:false,它将100%正常工作。 我在ajax引用的php页面的第一行记录了错误。它没有出现在日志中。控制台中也没有错误,并且没有执行ajax错误函数。下面是一个示例,如果它包含对浏览器的检查,但不包含其他检查,则该示例有效

function myAjax(data) {
  console.log("called");
  isFirefox = typeof InstallTrigger !== 'undefined';
  $.ajax({
    type: "POST",
    url: 'confirm.php',
    async: !isFirefox,
    data:{action:'call_this', data: data},
    success:function(html) {
      alert(html);
    },
    error: function(jqXHR, exception) {
    var msg = '';
    if (jqXHR.status === 0) {
        msg = 'Not connect.\n Verify Network.';
    } else if (jqXHR.status == 404) {
        msg = 'Requested page not found. [404]';
    } else if (jqXHR.status == 500) {
        msg = 'Internal Server Error [500].';
    } else if (exception === 'parsererror') {
        msg = 'Requested JSON parse failed.';
    } else if (exception === 'timeout') {
        msg = 'Time out error.';
    } else if (exception === 'abort') {
        msg = 'Ajax request aborted.';
    } else {
        msg = 'Uncaught Error.\n' + jqXHR.responseText;
    }}
  });
  window.open("index.php","_self");
}
编辑: 当按下按钮时调用函数,“数据”是一个字符串

<button id="confirm" onclick='myAjax("<?php  echo $data; ?>")'>Confirm </button>

您应该避免使用async:false,因为它不仅被jQuery反对,而且被浏览器本身反对。您需要以异步模式进行思考。如果您查看Firefox开发工具中的“网络”选项卡,您是否看到了请求?是否出错?您是否支持公司代理?
异步ajax请求在Firefox中大约90%的时间都不起作用
如果使用正确,异步请求在Firefox中100%的时间都起作用。您最好将时间花在调试请求中出现的任何问题上,而不是尝试绕过同步解决方案。首先要调试的是
data
所包含的值以及调用此函数的位置from@Jan在“网络”选项卡中,我没有看到任何使用方法“POST”的请求。我同意这应该以异步方式完成。您应该避免使用async:false,因为它不仅被jQuery反对,而且被浏览器本身反对。您需要以异步模式进行思考。如果您查看Firefox开发工具中的“网络”选项卡,您是否看到了请求?是否出错?您是否支持公司代理?
异步ajax请求在Firefox中大约90%的时间都不起作用
如果使用正确,异步请求在Firefox中100%的时间都起作用。您最好将时间花在调试请求中出现的任何问题上,而不是尝试绕过同步解决方案。首先要调试的是
data
所包含的值以及调用此函数的位置from@Jan在“网络”选项卡中,我没有看到任何带有方法“POST”的请求。我同意这应该以异步方式完成。