发布请求ajax与后端使用laravel做出反应

时间:2015-10-27 14:38:31

标签: ajax laravel reactjs

我想提交非常简单的表格使用前端的反应和laravel后端我使用教程facebook反应但使用ES6控制台日志显示给我“parsererror”“SyntaxError:意外的输入结束”

所以In React

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)}/>
    );
}

在Backend中使用Laravel 5.1

public function store(Request $request)
 {
    $photo = new Photo();

    if($request->ajax())
    {
        $data = Input::all();
        print_r($data);die;

    }

}
在控制台日志中的

我看这个“parsererror”“SyntaxError:Unexpected token A”
我无法恢复数据或将其保存在数据库中

1 个答案:

答案 0 :(得分:0)

一个简单的解决方案是不使用print_r()打印数据,而是简单地使用laravel中的响应json函数。

 $data = Input::all();
 return response()->json($data);

你将在你的$ .ajax中按照你的要求返回json。