首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >数据插入成功,但jquery仍返回错误

数据插入成功,但jquery仍返回错误
EN

Stack Overflow用户
提问于 2010-02-10 08:23:35
回答 6查看 17.1K关注 0票数 19

我使用下面的jQuery通过数据服务插入数据。事件尽管我得到了状态响应201,并且数据被成功地插入到我的数据库中,但是系统仍然将其视为错误并给出“失败”警告?

这里我漏掉了什么?

代码语言:javascript
复制
$.ajax({
    type: "POST",
    url: "http://localhost:49223/Form/WebDataService.svc/XMLForm(guid'1eaef3a0-d6df-45bf-a8f6-3e7292c0d77e')/XMLRecord/",
    data: JSON.stringify(record),
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function() {
        alert("Success");
    },
    error: function(xhr) {
        alert("fail");
    }
});

更新:

来自Fire Bug的调试消息:

代码语言:javascript
复制
Preferences

POST http://localhost:49223/Form/WebDataService.svc/X...ef3a0-d6df-45bf-a8f6-3e7292c0d77e%27)/XMLRecord/

POST http://localhost:49223/Form/WebDataService.svc/XMLForm(guid%271eaef3a0-d6df-45bf-a8f6-3e7292c0d77e%27)/XMLRecord/

jquery....min.js (line 127)
POST http://localhost:49223/Form/WebDataService.svc/X...ef3a0-d6df-45bf-a8f6-3e7292c0d77e%27)/XMLRecord/

POST http://localhost:49223/Form/WebDataService.svc/XMLForm(guid%271eaef3a0-d6df-45bf-a8f6-3e7292c0d77e%27)/XMLRecord/

201 Created 6.7s

POST http://localhost:49223/Form/WebDataService.svc/X...ef3a0-d6df-45bf-a8f6-3e7292c0d77e%27)/XMLRecord/

POST http://localhost:49223/Form/WebDataService.svc/XMLForm(guid%271eaef3a0-d6df-45bf-a8f6-3e7292c0d77e%27)/XMLRecord/

201 Created


get readyState 4

get responseText "{ "d" : {\r\n"__metadata"...\')/XMLForm"\r\n}\r\n}\r\n} }"

get responseXML null

get status 201

get statusText "Created"
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-10-17 22:41:58

您必须发送{ dataType:'text‘}才能让成功函数处理jQuery和空响应。

票数 61
EN

Stack Overflow用户

发布于 2010-02-11 10:05:36

解决方案:

即使我仍然不能弄清楚我是如何从前面的代码中得到错误的,我还是得到了这个对我有效的替代解决方案。(至少现在是这样)。

希望听到更多的想法

谢谢大家

代码语言:javascript
复制
$.ajax({
            type: "POST",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            url: "http://localhost:49223/Form/WebDataService.svc/XMLForm(guid'1eaef3a0-d6df-45bf-a8f6-3e7292c0d77e')/XMLRecord/",
            data: JSON.stringify(record),
            complete: function(xhr) {
                if (xhr.readyState == 4) {
                    if (xhr.status == 201) {
                        alert("Created");
                    }
                } else {
                    alert("NoGood");
                }
            }
            //                
            //                success: function(data) {
            //                    alert("Success");
            //                },
            //                error: function(xhr) {
            //                    alert("fail" + xhr);
            //                }
        });
票数 11
EN

Stack Overflow用户

发布于 2016-11-18 06:16:05

这并不是因为没有内容的201必然被认为是无效的,而是因为解析空字符串("")是一个JSON解析错误。

此行为可以全局更改,也可以通过设置dataFilter按请求更改。

代码语言:javascript
复制
$.ajaxSetup({
    dataFilter: function(data, dataType) {
        if (dataType == 'json' && data == '') {
            return null;
        } else {
            return data;
        }
    }
});
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2233553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档