0

作为调用 API 的 JQuery AJAX POST 请求的一部分,我正在尝试创建一个新项目。

我正在尝试打印确切的错误消息,以防已存在同名项目。根据成功/失败从 API 调用返回适当的错误响应。

我无法准确提取作为 API 调用的一部分返回的错误消息。我只想知道如何准确地提取此错误消息,我可以在 UI 中将其显示为 Flash 消息。

在执行 console.log(data) 时,我在 Firebug 中打印以下作为响应的一部分:-

data: Object { readyState=4, responseText="{"error":"Item already exists","status":404}", status=404, more...}

在扩展整个响应时(单击“更多...”)。我得到以下信息: -

readyState
    4

responseText
    "{"error":"Item already exists","status":404}"

status
    404

statusText
    "Not Found"

abort
    function()

always
    function()

complete
    function()

done
    function()

error
    function()

fail
    function()

getAllResponseHeaders
    function()

getResponseHeader
    function()

overrideMimeType
    function()

pipe
    function()

progress
    function()

promise
    function()

setRequestHeader
    function()

state
    function()

statusCode
    function()

success
    function()

then
    function()

现在要打印上述消息,我尝试了以下操作:-

var obj = data.responseText
console.log("Object Error:- ", obj.error);

但在 Firebug 中console.log("Object Error:- ", obj.error);返回。undefined我知道我不是直接处理哈希。responseText 在 string 中有一个哈希,我确信我的问题的答案与这个观察有某种关系...... 我如何准确提取确切的错误消息?

4

1 回答 1

0

您的响应文本是 JSON。您需要解析它并将结果作为纯 JS 对象处理。

JSON.parse(data.responseText).error
于 2013-07-09T10:02:33.063 回答