如何从jqXHR提取请求?

时间:2020-09-28 12:29:52

标签: jquery ajax

使用jQuery,我可以使用此代码将searchString发布到服务器。

    $.ajax({
    method: 'POST',
    url: _config.api.invokeUrl + '/foo',
    headers: {
    Authorization: authToken
    },
    data: JSON.stringify({"Search": searchString}),
    contentType: 'application/json',
    success: completeRequest,
    error: function ajaxError(jqXHR, textStatus, errorThrown) {
        ....
    }
});

成功完成后,会调用completeRequest函数。

function completeRequest(result, status, request) {
    // request is the jqXHR
    console.log('### Request ###\n', request);
    ...
}

服务器可能在result中返回空的JSON。我希望能够显示某些searchString的搜索没有任何结果。我怎么能从request得到这个?

1 个答案:

答案 0 :(得分:1)

请求对象无法为您提供发送请求时传递的数据。在发送实际请求之前,您需要手动将数据分配给请求对象。

您可以使用JQuery AJAX beforeSend 方法。

$.ajax({
    method: 'POST',
    url: _config.api.invokeUrl + '/foo',
    headers: {
    Authorization: authToken
    },
    data: JSON.stringify({"Search": searchString}),
    beforeSend: function(req, settings) {
      req._data = settings.data;
    },
    contentType: 'application/json',
    success: completeRequest,
    error: function ajaxError(jqXHR, textStatus, errorThrown) {
        ....
    }
});

function completeRequest(result, status, request) {
    // request is the jqXHR
    console.log('### Request ###\n', request._data);
    ...
}

beforeSend 方法中,将数据从ajax设置对象分配到req对象。