【发布时间】:2016-11-03 04:30:40
【问题描述】:
我如下提交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)
})
}
上面的 ajax post 将调用相应的 Web Api post 方法,其中数据成功插入到数据库中。
发布数据后,程序不会返回成功函数,而是调用错误函数并记录错误
parsererror SyntaxError: JSON.parse: 第 1 行的数据意外结束 JSON数据的第1列
当我检查 xhr.status 时,值是 201,statustext 是 Created。
为什么上面的ajax post调用返回parsererror?如何解决这个问题?
【问题讨论】:
-
/api/Accounts没有返回有效的 JSON -
我应该从上面的代码中删除 dataType:'json' 吗?
-
你期待 JSON 吗?
console.log(xhr.responseText)或查看网络面板中的请求以查看返回的内容。 -
/api/Accounts返回什么?dataType:'text',我猜是一个安全的选择 -
201通常没有响应正文。删除那个dataType选项就可以了。
标签: javascript ajax reactjs