【问题标题】:Ajax request succeeds in Chrome but fails in FirefoxAjax 请求在 Chrome 中成功,但在 Firefox 中失败
【发布时间】:2015-08-23 21:29:13
【问题描述】:

我有一个 javascript 函数,它可以对 PHP 页面进行 ajax 调用,以进行一些数据库事务和数据处理。这是函数:

function processQuizResults()
{
    console.log("Processing results...");

    var selections = [];
    for (var i = 1; i <= 8; i++)
    {
        var thestr = "#sel" + i;
        $(thestr).is(':checked') ? selections.push(1) : selections.push(0);
    }

    var URLcode = '<?php echo $URLcode; ?>';
    var ajaxURL = "/processNewData.php?qid=" + URLcode + "&res=";
    for (var i = 0; i < 8; i++)
    {
        ajaxURL += selections[i];
    }

    $.ajax({
        url: ajaxURL,
        type: 'post'
    })
    .done(function () {
        console.log("ajax success.");
    })
    .fail(function () {
        console.log("ajax failure.");
    });
}

在 Chrome 中,浏览器进行 Ajax 调用,我看到我的 processNewData.php 中的断点在 Visual Studio 中被命中(如果我有一些设置),并且数据干净并正确显示在我的数据库中另一边。然而,在 Firefox 中,运行这个完全相同的函数会使 $.ajax 进入它的 .fail 方法,并且 processNewData.php 代码永远不会被执行。

我不知道如何调试这样的问题,也不知道是什么导致了问题。谁能告诉我哪里出错了?

【问题讨论】:

  • 使用firefox开发者工具或者firebug(我认为firebug有更好的网络错误和警告信息)你可以在控制台看到ajax请求然后点击它,也许它会给你一些信息(错误的 url、找不到方法、找不到数据或其他东西)或事件“post”可能在“POST”中(关于 POST 的事情很奇怪,一旦我遇到了那个错误)
  • 你能添加给你的.fail()方法的参数并在这里发布它们的值吗?您的回调方法将接收 3 个参数:stackoverflow.com/a/9847328/237073
  • @MartinWiboe testStatus 和 errorThrown 分别返回为“error”和(一个空字符串)。 jqXHR 作为以下对象返回:i.imgur.com/UG4FUIF.png
  • 包含页面和脚本的完整 URL 是什么?控制台中还有其他内容吗?

标签: javascript jquery ajax google-chrome firefox


【解决方案1】:

根据this answer,您可能遇到了 CORS 问题。

您从哪些域为服务器端应用程序和前端提供服务?尝试确保它们在同一个域中,看看是否出现相同的错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-05
    • 2019-09-04
    • 2020-08-28
    相关资源
    最近更新 更多