2017-01-23 120 views
1

我有两个表(College Table和High School Table)具有相同的属性。我想要做的是从College Table发送数据到高中表。例如,我在大学表中有达摩尔学院,如果我按下一个名为sendtoHighSchool()的函数按钮,那么应将数码学院发布到高中表。HTTP发布角2与laravel 5.3后端

当我在“发送到高中”按钮点击,我看到的数据已经取好了,但我仍然得到这个错误

" POST http://localhost:3000/api/college_api/v1/colleges 500 (Internal Server Error) 
error_handler.js:47 EXCEPTION: Response with status: 500 Internal Server Error for URL: http://localhost:3000/api/college_api/v1/colleges 
ErrorHandler.handleError @ error_handler.js:47 
next @ application_ref.js:272 
schedulerFn @ async.js:82 
SafeSubscriber.__tryOrUnsub @ Subscriber.js:223 
SafeSubscriber.next @ Subscriber.js:172 
Subscriber._next @ Subscriber.js:125 
Subscriber.next @ Subscriber.js:89 
Subject.next @ Subject.js:55 
EventEmitter.emit @ async.js:74 
NgZone.triggerError @ ng_zone.js:278 
onHandleError @ ng_zone.js:257 
ZoneDelegate.handleError @ zone.js:236 
Zone.runTask @ zone.js:157 
ZoneTask.invoke @ zone.js:335 
Subscriber.js:227 Uncaught Response {_body: "<!DOCTYPE html>↵<html>↵ <head>↵  <meta ch…l>↵</div>↵↵   </div>↵ </body>↵</html>", status: 500, ok: false, statusText: "Internal Server Error", headers: Headers…} 
SafeSubscriber.__tryOrUnsub @ Subscriber.js:227 
SafeSubscriber.next @ Subscriber.js:172 
Subscriber._next @ Subscriber.js:125 
Subscriber.next @ Subscriber.js:89 
Subject.next @ Subject.js:55 
EventEmitter.emit @ async.js:74 
NgZone.triggerError @ ng_zone.js:278 
onHandleError @ ng_zone.js:257 
ZoneDelegate.handleError @ zone.js:236 
Zone.runTask @ zone.js:157 
ZoneTask.invoke @ zone.js:335" 

//表

<td><a class="btn btn-success" (click)="addToHighSchool()"><em class="fa fa-plus"></em></a>Send to High school</td> 

//学院组件

addToHighSchool(college) { 
    this.httpService.add(college) 
    .subscribe(data =>{ 
     console.log(data) 
    }); 
    console.log(college) 
} 

//服务

add(user:any) { 
    const body = JSON.stringify(user); 
    const headers = new Headers(); 
    headers.append('Content-Type', 'application/json'); 
    return this.http.post('http://localhost:3000/api/college_api/v1/colleges', body, {headers: headers}) 
    .map((data:Response) => data.json()); 
} 
+0

您需要通过CSRF令牌,阅读更多https://laravel.com/docs/5.3/csrf –

+0

@ka_lin,谢谢,但我已经做到了。所有其他方法(删除,获取)。我还有另一个功能,它也在执行帖子功能并且工作正常,但是上面的失败 – Switz

+0

您是否读过日志中的任何错误?这似乎是一个服务器端问题 –

回答

1

应用程序/ HTTP /中间件/ VerifyCsrfToken.php觉得这和写保护

$except = [ 'api/*' ];

然后找到路由并修改

<?php Route::group(['prefix' => 'api', 'middleware' => ['cors']], function(){ Route::resource('courses', 'CourseController', ['except' => [ 'create', 'edit' ]]); });