仅在 laravel 用作 API 时使用 angular 4 传递 csrf 元标记

Pass csrf meta tag with angular 4 when using laravel as API only

我正在使用 Laravel 5.5 和 Angular 4。Laravel 仅作为 API。我正在尝试从表单传递数据,但无法传递 csrf 令牌。 这是我的服务:

import { ElementRef, Injectable, Injector, Renderer2, ViewChild } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs/Observable';
import { Link } from './link.model';
import 'rxjs/Rx';
import { RequestOptions } from '@angular/http';

@Injectable()
export class LinkService {

    constructor(private http: HttpClient) {

    }

    createLink(link): Observable<any> {
    //links param is the data from the form
      
        let url = 'http://127.0.0.1:8000/links';
        return this.http
            .post(url, link)
            .map(response => {
                console.log(response);
            })
    }
}

已编辑:我已经从 App/Kernel.php 中删除了 VerifyCsrfToken 中间件,所以现在没有错误了。但是如果有人知道是否可以通过它,请告诉我。

VerifyCsrfToken 中间件在每个 POST 请求中需要一个 Laravel session 和一个 X-CSRF-TOKEN header。默认情况下 laravel 会发送一个带有 GET 响应的 X-XSRF-TOKEN cookie,因此您可以获取该值并实施 Angular HttpInterceptor 以在您的请求中设置 header!

希望对您有所帮助!