簡體   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