ruby-on-rails - POST 请求的参数中没有数据

标签 ruby-on-rails angular

目前我在 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());
}

请求是由我的浏览器发出的,我可以看到 JSON 数据: enter image description here

但是 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>)>

谁能告诉我,出了什么问题吗?

最佳答案

在您的例子中,您设置表单数据的内容类型,并使用 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());
    }
    

关于ruby-on-rails - POST 请求的参数中没有数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38645842/

相关文章:

ruby-on-rails - 了解 Rails 3 的 response_with

ruby-on-rails - 如何允许用户嵌入 YouTube 和 Vimeo 视频?

javascript - 如何实现迭代、数组填充 Angular 2 输入?

javascript - App.settings - Angular 方式?

javascript - 如何在 Ionic 4 中导入 crypto-js

mysql - ActiveRecord::StatementInvalid: Mysql2::在 .where 方法中使用关联名称而不是外键时出错

ruby-on-rails - 在 Rails 中显示未读帖子

ruby-on-rails - Rails:包含多态关联

javascript - 无法从 Angular 5 和 Dragula 制作多个内部可拖动对象

angular - 自定义比较密码验证器和这个 [Angular 2,4,5,6]