服务器更改后不会触发AJAX成功事件

时间:2017-11-04 12:19:13

标签: javascript jquery

我有以下代码,它在以前的网络服务器上完美执行。但是,它现在还没有完成代码的SUCCESS部分。我不确定服务器的确切差异,也无法在该级别访问它们。

我想知道这段代码中是否存在错误,就像我在Dreamweaver中查看时一样,着色停止了部分工作。我附上截图,你可以看到我的意思。有什么想法可以修复那种着色?也许导致脚本失败的原因可能与此相同。 感谢。

function upload(id, pupilID, statementID, firstName, goalText) {
    var ext = $("#" + id).val().split('.').pop().toLowerCase();
    if ($.inArray(ext, ['jpg', 'jpeg']) == -1) {
        alert('Invalid File Type. Only Standard JPG/JPEG Files Are Allowed. This Is The Standard/Default File Type Of Most Mobile Devices & Digital Cameras.');
        return;
    }

    $("#assess").hide();
    $("#progressWrapper").show();

    var data = new FormData();
    data.append('input_file_name', $("#" + id).prop('files')[0]);
    data.append("type", 'savePhoto');
    data.append("pupilID", pupilID);
    data.append("statementID", statementID);

    $.ajax({
        type: 'POST',
        data: data,
        url: 'ajax.php',
        processData: false,
        contentType: false,
        xhr: function (){
            var xhr = $.ajaxSettings.xhr();
            if (xhr.upload) {
                xhr.upload.addEventListener('progress', function (event) {
                    var percent = 0;
                    var position = event.loaded || event.position;
                    var total = event.total;
                    if (event.lengthComputable) {
                        percent = Math.ceil(position / total * 100);
                    }
                    $('.first.circle').circleProgress({
                        value: (percent / 100),
                        animation: false,
                        fill: {gradient: ['#ff1e41', '#ff5f43']}
                    });
                    $("#percentValue").html(Math.round(100 * (percent / 100)) + '<i>%</i>');
                }, true);
            }
            return xhr;
        },
        success: function (response)
        {
            $("#progressWrapper").hide();
            $("#preTagged2").html('<b>' + firstName + '</b>');
            $("#tagStudents").show();
            $("#taggedPupilWas").val(pupilID);
            $("#taggedStatementWas").val(statementID);
            $("#taggedForenameWas").val(firstName);
            $("#taggedGoalTextWas").val(goalText);
        }
    });
}

截图:

Screen Shot

1 个答案:

答案 0 :(得分:0)

Dreamweaver语法突出显示无法知道服务器上发生了哪些更改。问题没有关系。

以下是调试问题的方法:

  1. 打开您的网站
  2. 按F12打开开发者工具
  3. 单击“网络”选项卡
  4. 在您的网站上执行将触发的操作 upload()
  5. 网络标签中,您可以看到您网站发布的所有网络请求
  6. 查找您的请求并检查服务器是否返回正确的响应
  7. 如果服务器返回错误的响应,您可以:

    • 调整您的代码,以便处理新的回复
    • (更有可能)联系某人以解决服务器上的问题