jquery - 无法使用 X-Editable/jQuery、Chrome 读取 JSON

标签 jquery ajax json x-editable

我一直在试图找出为什么这不起作用太久了。认为是时候寻求帮助了。

我有使用X-Editable的Javascript 。我的页面向我的服务器提交 AJAX 请求。我的服务器使用包含 db key 的 JSON 进行响应。唯一的问题是,Chrome 无法识别 JSON。

开发工具显示响应为:

HTTP/1.1 200 OK
Date: Wed, 22 Oct 2014 20:04:12 GMT
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
Content-Type: text/javascript;charset=UTF-8
Content-Length: 30
Server: Jetty(7.6.13.v20130916)

{"success":true,"actionid":66}

我不认为在规范中取得成功,但 X-Editable 引用了它。我试过把它放进去和拿出来,但没有任何区别。

下面的函数处理提交 AJAX 请求并处理成功/失败。只是,由于某种原因,成功例程没有被调用。

$('#save-btn').click(function() {
    $('.new-link-param').editable('submit', {
        url: '/newlink',
        ajaxOptions: {
            type: 'post'
        },
        success: function (data, config) {
            // console.log(JSON.stringify(data));
            // console.log(data.actionid);
            // console.log(typeof data);
            // if(data && data.actionid){ // assumes response like {"actionid": 2}
            //     alert(true);
            //     $(this).editable('option', 'actionid', data.actionid);
            //     $(this).removeClass('editable-unsaved');
            //     var msg = "Link saved.";
            //     $('#msg').addClass('alert-success').remove.Class('hidden').removeClass('alert-error').html(msg).show();
            //     $(this).off('save.newuser');
            // }
            // else if(data && data.errors){
            //     config.error.call(this, data.errors);
            //}
            alert(true);
        },
        error: function(errors) {
            alert(false);
            var msg = "";
            if(errors && errors.responseText){
                msg = errors.responseText;
            } else {
            console.log("Error: " + errors.responseText);
            }
}}).editable('destroy').removeClass().removeAttr('id').parent().parent().children("button").remove();
});
}

当天早些时候,成功函数被调用,但内部的 if 语句返回 false,因为数据存在。由于某种原因,data.actionid 未定义。不知道为什么会发生这种变化。我认为鉴于我上面粘贴的回复,它应该受到打击。

我想知道我需要做什么才能使 JS 代码注册成功并识别返回给它的 JSON。

最佳答案

解决方案是我需要指定 ajaxOptions{ dataType: 'json'}

关于jquery - 无法使用 X-Editable/jQuery、Chrome 读取 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26516352/

相关文章:

javascript - 通过 Ajax 调用将 JSON 传递给 WCF

javascript - 通过ajax获取数据,然后使用select应用过滤器

php - XMLHttpRequest 无法加载资源

javascript - 将数组中的一项附加到一个 div

javascript - AngularJS : date-time picker (vs) zoom in graph : one or the other not working

javascript - 如何通过ajax请求将字符串和文件一起发送到php文件?

wcf - 使用 JSON 调用 WCF REST 服务时出错。超出长度配额 (8192)

json - 使用汇总数据 reshape jq 数组

javascript - 从 Javascript 中的文本区域中删除某些文本

javascript - d3 中的散点图点未渲染