我有一个问题,当提交表单数据在调整大小的屏幕上使用AJAX移动。当您将页面调整为桌面大小时,一切工作正常。
我正在使用jQuery DataTables,并且我在每一行上都有一个按钮来编辑表单。当页面未调整大小且DataTable为全屏时,一切正常,只要我调整页面大小以适应移动设备和平板电脑,DataTable就会在左侧创建一个绿色的加号图标以展开表格,但当我单击编辑按钮时,我在控制台Uncaught SyntaxError: Unexpected token <中收到错误的Invalid Ajax Request
同样,这适用于大屏幕,但不适用于移动设备和平板电脑。
我使用的是PHP MVC,代码如下:
我的jQuery函数:
$(function () {
    $("form#editEmailTemplate").on('submit', function (e) {
        var postData = $(this).serialize();
        var formURL = $(this).attr("action");
        var formMethod = $(this).attr("method");
        $.ajax({
            url: formURL,
            type: formMethod,
            data: postData,
            mimeType: "multipart/form-data",
            scriptCharset: "UTF-8",
            ContentType: 'html',
            dataType: 'html',
            success: function (data, textStatus, jqXHR) {
                var returnedData = JSON.parse(data);
                for (var i = 0; i < returnedData.length; i++) {
                    $('#response').empty();
                    $("#DataTableEmails_wrapper").hide();
                    $("#updateEmailTemplate").show();
                    $('#emailid').val(returnedData[0][i].emailid);
                    $('.emailtitle').text(returnedData[0][i].title);
                    $('#emailsubject').val(returnedData[0][i].subject);
                    $('#emailtext').val(returnedData[0][i].textmessage);
                    $('#emailhtml').val(returnedData[0][i].htmlmessage);
                }
            },
            error: function (jqXHR, textStatus, errorThrown) {
                $('#response').html('<div class="alert alert-danger">Something went wrong !!! . Email tremplate has NOT  been  selected</div>');
                setTimeout(fade_out, 10000);
                function fade_out() {
                    $("#response").fadeOut().empty();
                }
            }
        });
        e.preventDefault(); //STOP default action
    });
});HTML表单是:
<form class="ui segment error" role="form" method="post" accept-charset="UTF-8" 
    action="mail/editEmailTemplate/" id="editEmailTemplate">
    <input type="hidden" name="emailid" value="' . $value['emailid'] . '">
    <input type="image" name="submit" value="" src = "' . ICO . 'system/configure.png" 
        width="20" height="auto" title = "' . lang('BTN_EDIT_EMAIL_TEMPLATE_TOOLTIP') . '"/>
</form>该表单在所有屏幕尺寸上都有相同的结构和数据,因此在调整大小时不会发生变化。
发布于 2015-08-30 10:22:19
您的formURL可能返回一个HTMLFormated404not found。当它这样做时,它将包含
<html></html>这不是有效的javascript,或者如果该文件是PHP,并且其中有错误,它也会以HTML格式响应,并在响应中以'<‘开头。因为这不是一个有效的响应,所以当遇到它时,它将中断。
https://stackoverflow.com/questions/32291687
复制相似问题