【发布时间】:2015-10-27 14:38:30
【问题描述】:
我想在前端和 laravel 后端使用 react 提交非常简单的表单我使用教程 facebook react 但使用 ES6 控制台日志显示给我“parsererror”“SyntaxError: Unexpected end of input”
所以在反应中
handleSubmit(e) {
e.preventDefault();
var name = this.refs.name.value.trim();
var description = this.refs.description.value.trim();
console.log(`Name : ${name} , and Description ${description}`);
if (!name || !description) {
return;
}
this.props.onCommentSubmit({name: name, description: description});
this.refs.name.value = '';
this.refs.description.value = '';
return;
}
render(){
return(
<form onSubmit={this.handleSubmit.bind(this)}>
<input type="text" placeholder="Your name" ref="name" />
<input type="text" placeholder="Say something..." ref="description" />
<input type="submit" value="Post" />
</form>
);
}
我将这个类导入全局类
constructor() {
super();
this.state = { data: [] };
}
handleCommentSubmit(d) {
var comments = this.state.data;
var newComments = comments.concat([d]);
this.setState({data: newComments});
$.ajax({
type: 'POST',
url: 'http://localhost:8000/photo',
dataType: 'json',
data: d,
context: this,
success: (data) => {
this.setState({data: data});
},
error: (xhr, status, error) => {
console.error(this.props.url, status, error.toString());
}
});
}
render(){
return(
<FormCtl onCommentSubmit={this.handleCommentSubmit.bind(this)}/>
);
}
在后端使用 Laravel 5.1
public function store(Request $request)
{
$photo = new Photo();
if($request->ajax())
{
$data = Input::all();
print_r($data);die;
}
}
在控制台日志中,我查看此“解析器错误”“SyntaxError: Unexpected token A”
我无法恢复数据或将其保存在数据库中
【问题讨论】:
-
dataType: 'json'期望服务器返回有效的 JSON。因为您正在打印字符串/数组,所以它会引发该错误。