我试图将POST请求发送到Drupal网站(创建内容类型测试的新节点),但出现错误422(无法处理的实体)

这是我在Angular中的服务:

createBlog(blog: Blog): Observable<any>{
  let url = this.API_URL + "entity/node";
   blog._links = {type : { href: 'http://example.co.uk/rest/type/node/test' } };
  return this.http.post(url, blog,  {headers:this.headers}).map(res => res.json()).catch(err => {
 console.log(blog)
    return Observable.throw(err.json);
  });
}


这是我在提交表单后进入控制台的内容:

javascript - POST请求Angular 2 Drupal 8上的错误422-LMLPHP

有任何想法吗?

最佳答案

通过http发布之前,请使用JSON.stringify(data)方法。

return this.http.post(url, JSON.stringify(blog), headers).map((res: Response) => res.json());


编辑:

麻生太郎使用标题如下。

import { Headers, Response, RequestOptions} from "@angular/http";
...

let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
let body = JSON.stringify(blog);
return this.http.post(url, body, options).map((res: Response) => res.json());

关于javascript - POST请求Angular 2 Drupal 8上的错误422,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40931856/

10-10 15:56