Jquery 数据数据意外结束=JSON.parse(errorshown.responseText);

Jquery 数据数据意外结束=JSON.parse(errorshown.responseText);,jquery,Jquery,我有以下脚本。在出现错误时,它通过显示一个模态来工作。我已经测试过了,它工作了。如果成功,它将显示一个警报框,但我收到消息: SyntaxError: JSON.parse: unexpected end of data 以下是引发错误的行: data = JSON.parse(errorThrown.responseText); 然而,它不应该在成功的基础上运行这个,对吗 谁能看一下吗 成功后,页面将返回所创建的201 $.ajax({ url: '/accounts/cr

我有以下脚本。在出现错误时,它通过显示一个模态来工作。我已经测试过了,它工作了。如果成功,它将显示一个警报框,但我收到消息:

SyntaxError: JSON.parse: unexpected end of data
以下是引发错误的行:

data = JSON.parse(errorThrown.responseText);
然而,它不应该在成功的基础上运行这个,对吗

谁能看一下吗

成功后,页面将返回所创建的
201

$.ajax({
        url: '/accounts/create/',
        type: 'POST',
        dataType: "json",
    },
    data: $('#registration').serialize(),
    success: function () {
        console.log('success');
        alert("test")
    },
    error: function (errorThrown) {
        data = JSON.parse(errorThrown.responseText);
        $('#account-error').modal("show");
        $('#error-text').html(data.error);
        console.log(errorThrown);
    }
});

您试图解析为JSON的数据不是

你可以用

if(jQuery.parseJSON的类型(errorshorn.responseText)==“object”)

检测响应文本是否为有效的JSON格式

希望这有帮助

编辑

您可能希望尝试使用:


您正试图用JSON解析Javascript对象,当您在ajax请求中指定数据类型时,响应已经从JSON转换为Javascript对象。

您试图解析为JSON的数据不是

你可以用

if(jQuery.parseJSON的类型(errorshorn.responseText)==“object”)

检测响应文本是否为有效的JSON格式

希望这有帮助

编辑

您可能希望尝试使用:


您正在尝试用JSON解析Javascript对象,当您在ajax请求中指定数据类型时,响应已经从JSON转换为Javascript对象。

问题在于数据类型。错误将是json,但看起来您的成功数据类型不是json。这意味着它会再次触发“error”函数。只需删除数据类型,看看会发生什么。

问题在于数据类型。错误将是json,但看起来您的成功数据类型不是json。这意味着它会再次触发“error”函数。只需删除数据类型,看看会发生什么。

errorhorn.responseText
不是JSON格式,无法解析。
errorhorn.responseText
的值是多少?errorhorn没有“responseText”字段
errorhorn。responseText
不是JSON格式,无法解析。的值是多少
errorThrown.responseText
?errorThrown没有“responseText”字段,所以您要说的是函数error:function(errorThrown)也会在成功时运行?@User7似乎是这样,因为该函数运行。。。此外,当
jQuery.post
可用时,也不需要使用
jQuery.ajax
重新发明轮子。我编辑我的答案就是为了说明这一点。@User7我没有注意到,但您试图用JSON解析JAvascript对象,编辑了我的答案。。。对不起,你的大脑放屁了…那么你说的是函数错误:函数(errorhorn)也在成功时运行?@User7似乎是这样,因为该函数运行。。。此外,当
jQuery.post
可用时,也不需要使用
jQuery.ajax
重新发明轮子。我编辑我的答案就是为了说明这一点。@User7我没有注意到,但您试图用JSON解析JAvascript对象,编辑了我的答案。。。对不起,我的大脑放屁…该死,在他之后1分钟的评论中说的,FML:|该死,在他之后1分钟的评论中说的,FML:|
var ajaxRequest = jQuery.post("/accounts/create/", $('#registration').serialize(), function() {
  //On success
})
  .fail(function(errorThrown) {
    data = errorThrown.responseText;
    $('#account-error').modal("show");
    $('#error-text').html(data.error);
    console.log(errorThrown);
  });