【问题标题】:Receiving 'data is not defined' error in console when doing a POST query in AJAX在 AJAX 中执行 POST 查询时,在控制台中收到“未定义数据”错误
【发布时间】:2025-11-26 14:30:01
【问题描述】:

我正在处理一个表单,该表单在提交为列表中的新条目时会写入 SharePoint 列表。我已经准备好 AJAX 代码,它似乎可以连接到列表,但是在尝试创建条目时收到以下错误:

SCRIPT5009: 'data' is not defined

这是我的代码,数据是从表单中的文本框中提取的,我只是不确定它们是否已正确添加到 JSON 数组中。

function AddListItem() {  
    var ref = $("#ref").val();  
    var userID = $("#userID").val();  
    var impact = $("#impact").val();

    $.ajax  
        ({  
        url: "https://office4.bt.com/sites/ccim/Portal/_api/web/lists/GetByTitle('ImpactFeedback')/items",  
        type: "POST",  
        data: JSON.stringify  
        ({  
            __metadata:  
            {  
                type: "SP.Data.TestListItem"  
            },  
            Title: ref,  
            UIN: userID,
            Issue: impact,
            Email: email,  
        }),  
        headers:  
        {  
            "Accept": "application/json;odata=verbose",  
            "Content-Type": "application/json;odata=verbose",  
            "X-RequestDigest": $("#__REQUESTDIGEST").val(),  
            "X-HTTP-Method": "POST"  
        },  
        success: function(data, status, xhr)  
        {  
            retriveListItem();  
        },  
        error: function(xhr, status, error)  
        {  
            $("#ResultDiv").empty().text(data.responseJSON.error);  
        }  
    });  
}  

【问题讨论】:

  • 您的错误回调尝试访问data.responseJSON.error,但未定义data

标签: javascript json ajax rest


【解决方案1】:

在您的错误回调中,更改:

$("#ResultDiv").empty().text(data.responseJSON.error);  

$("#ResultDiv").empty().text(xhr.responseJSON.error);  

【讨论】: