目前我的Angular2和RoR5 API存在问题。我正在尝试将对象保存到API服务器,但这不起作用。
这是我的服务的Angular2代码:
createFrame(frameData) {
let headers = new Headers({ 'Content-Type': 'application/x-www-form-urlencoded' });
let options = new RequestOptions({ headers: headers });
let body = JSON.stringify({frame: frameData});
return this.http.post(this.frameURL, body, headers).map((res: Response) => res.json());
}
但是RoR无法获取POST数据。
[1] pry(#<Api::V1::FramesController>)> params
=> <ActionController::Parameters {"format"=>:json, "controller"=>"api/v1/frames", "action"=>"create"} permitted: false>
[2] pry(#<Api::V1::FramesController>)>
有人能告诉我,有什么不对吗?
答案 0 :(得分:1)
在您的情况下,您可以设置表单数据的内容类型,然后使用JSON格式发送一些内容。
您可以使用发送表单数据或JSON内容。
表单数据
createFrame(frameData) {
let headers = new Headers({ 'Content-Type': 'application/x-www-form-urlencoded' });
let options = new RequestOptions({ headers: headers });
let form = new URLSearchParams();
form.set('param1', 'some value');
let body = form.toString();
return this.http.post(this.frameURL, body, headers).map((res: Response) => res.json());
}
JSON数据
createFrame(frameData) {
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
let form = new URLSearchParams();
form.set('param1', 'some value');
let body = form.toString();
return this.http.post(this.frameURL, body, headers).map((res: Response) => res.json());
}
答案 1 :(得分:0)
问题可能与CORS(跨源资源共享)
有关要在您的应用程序中启用 - &gt; Enabling cors Rails5
祝你好运