Ajax post 调用返回解析器错误

Mem*_*eak 5 javascript ajax reactjs

我提交了下面提到的 reactjs 表单,

submit(){    
    if(this.checkRequiredField()){
    $.ajax({
      url: '/api/Accounts',
      dataType: 'json',
      type: 'POST',
      data: {               
          Name: this.state.name, 
          StartDate :this.state.startDate, 
          EndDate : this.state.endDate,
          UserCount: this.state.userCount          
        },
      success: function(data, status, xhr) {            
        console.log('data added successfully');
      }.bind(this),
      error: function(xhr, status, err) {
        console.error(status, err.toString());
      }.bind(this)
    })
  }
Run Code Online (Sandbox Code Playgroud)

上面的ajax post将调用相应的Web Api post方法,数据成功插入到数据库中。

发布数据后,程序不会返回成功函数,而是调用错误函数并记录错误

parsererror SyntaxError: JSON.parse: JSON 数据第 1 行第 1 列的数据意外结束

当我检查 xhr.status 时,该值为 201 并且 statustext 已创建。

为什么上面的ajax post调用返回解析器错误?如何解决这个问题?

Mem*_*eak 6

问题在于 ajax 调用中提到的 dataType。

post 方法不返回任何 json 数据,通过将 dataType :'json' 更改为 dataType:'text' 修复了该问题。

感谢 Jaromanda X 和 Mathew Jibin 的投入