繁体   English   中英

Ajax错误:SyntaxError:意外的令牌<错误

[英]Ajax Error: SyntaxError: Unexpected token < error

因此,很遗憾,我在论坛上搜索了类似的问题,但我很不幸找不到适合我问题的答案。 我正在尝试使用以下代码在我的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();
        }
    });
}

但是我收到了sysntax错误。 我尝试这样做是为了查看chrome中出现的错误

console.log(arguments);

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

我仍然在用ajax弄湿我的脚,所以我还不是绝对了解错误消息及其含义的专家。

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

如果是这样,您将完全得到您所描述的内容:页面的整个HTML都向您吐口水。

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

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

编辑:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM