javascript - Ajax 错误: SyntaxError: Unexpected token < error

标签 javascript jquery html ajax

因此,我在论坛中搜索了类似的问题,不幸的是,我很不幸地找到了适合我的问题的答案。 我正在尝试使用以下代码在 jquery 中进行 ajax 调用;

function submitForm(formData)
    {
    $.ajax({
        type: 'POST',
        url: 'addEvents.php',
        data: formData,
        dataType:'json',
        cache:false,
        timeout:7000,

        success: function(data){
            $('#addEventsForm #response').removeClass().addClass((data.error === true) ? 'error' : 'success').html(data.msg).fadeIn('fast');

            if($('#addEventsForm #response').hasClass('success')){
                setTimeout("$('#addEventsForm')",5000);
            }

        },

        error:function(XHR,textStatus,errorThrown)
        {
            $('#addEventsForm #response').removeClass().addClass('error').html('<p> There was an <strong>' + errorThrown +
                '</strong> error due to <strong>'+ textStatus +'</strong> condition.</p>').fadeIn('fast');
            console.log(arguments);
        //alert(XMLHttpRequest.responseText);
        },

        complete:function(XHR,status)
        {
            $('#addEventsForm')[0].reset();
        }
    });
}

但是我遇到了系统错误。我尝试这样做来看看我在 chrome 中遇到了什么错误

console.log(arguments);

但是 [Object, "parsererror", SyntaxError] 节点中的 responseText 似乎显示了包含我要插入的表单的页面的整个 html记录一下。

我还在 ajax 中涉足,所以我还不是完全理解错误消息及其含义的专家。

最佳答案

上面的 js/jQuery 代码是否位于 addEvents.php 页面上——也就是说,位于您将 AJAX 发布到的同一页面上? (换句话说,form/ajax 和 AJAX 目标都在同一个物理 PHP 页面上吗?)

如果是这样,您将得到您所描述的内容:页面的整个 HTML 都会向您返回。

根据设计,AJAX 必须发布到服务器上的不同物理页面。这就是它的工作原理。

另外,FWIW,请注意 dataType: 'json', 指的是返回的数据,而不是发送的数据。也许您已经知道这一点,但这是一个常见的误解,因此值得一提。

编辑:

正如 Felix 指出的那样,这个答案在技术上并不完美。可以将 AJAX 代码发布到同一页面,但您必须特别允许这样做。也许 FK 或其他人可以编辑这篇文章以添加附加代码的示例?

关于javascript - Ajax 错误: SyntaxError: Unexpected token < error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25464332/

相关文章:

Javascript延迟后播放声音

javascript - Angular 输入更新验证器

Jquery:按钮值更改不起作用,但更改显示在检查元素上

javascript - 验证十六进制文本字段不起作用

javascript - 从 URL 哈希设置页面状态 - 语法错误 (jQuery)

jquery - 调用 POST 方法时如何获取 Bootstrap 多选下拉列表值作为逗号分隔的字符串

html - 旋转时图标在 IE9 和 IE10 中消失

php - 计算数据表/数据库中某些输入的出现次数

javascript - ReactJS 元素在状态更改后不会重新加载

javascript - jQuery 数组没有在我的数组中找到对象?