Javascript 创建模型onClick(Rails 4)实例的Ajax调用

Javascript 创建模型onClick(Rails 4)实例的Ajax调用,javascript,ruby-on-rails,ajax,Javascript,Ruby On Rails,Ajax,我想在单击按钮时触发使用AJAX创建模型。我在控制器中定义了create操作,并在按钮上添加了onClick事件监听器: <a class="add-step btn btn-primary">Add</a> <script> $('.add-step').click(function(){ console.log("button works"); $.ajax({ type:'POST', url:

我想在单击按钮时触发使用AJAX创建模型。我在控制器中定义了
create
操作,并在按钮上添加了onClick事件监听器:

 <a class="add-step btn btn-primary">Add</a>
 <script>
   $('.add-step').click(function(){
   console.log("button works");
      $.ajax({
        type:'POST',
        url: '/blocks',
        dataType: "son",
        contentType: "application/json; charset=utf-8",
        data: { content: "hello" }
      });
   });
 </script>
我确实在控制台中看到“按钮工作”,但我也有一个错误:

POST http://localhost:3000/blocks 400 (Bad Request)

这似乎是params的问题(因为我没有404,似乎
create
action”起作用),但我找不到它有什么问题

原始答案

$.ajax({
    method:'POST',
    url: '/blocks',
    dataType: "script",
    format: "js",
    data: { content: "hello" }
  });
已更新

试着这样做:

$.ajax({
    method:'POST',
    url: '/blocks',
    dataType: "json",
    data: { content: "hello" }
  });

我认为您的问题在于
数据类型
应该是
json
,而
类型
应该是
方法

原始答案

$.ajax({
    method:'POST',
    url: '/blocks',
    dataType: "script",
    format: "js",
    data: { content: "hello" }
  });
已更新

试着这样做:

$.ajax({
    method:'POST',
    url: '/blocks',
    dataType: "json",
    data: { content: "hello" }
  });

我想你的问题是
数据类型
应该是
json
,而
类型
应该是
方法

为类似问题而研究的?@Nithin我这样做了,找到这篇文章:但即使是它的url也似乎是错误的,因为post请求必须向/model而不是/model/create发出,而且它没有一个非常有用的答案@Nithin刚刚做了,并添加了contentType:“application/json;charset=utf-8”对于我的AJAX调用,但我有相同的错误,可能是您传递了Authentity token。针对类似问题进行了研究?@Nithin我找到了,发现了这篇文章:但即使是它的url似乎也错了,因为post请求必须向/model而不是/model/create发出,并且没有非常有用的答案检查@Nithin刚刚做了并添加了contentType:“应用程序/json;字符集=utf-8“对我的AJAX调用,但我有相同的错误,可能是您有pass Authentity token。似乎不起作用。。。如果我按你的方式做,我是否应该在控制器中添加一个不同的响应?现在它被设置为json而不是jsah对不起,我将更新我的答案为
json
,而不是
js
,但是是的,如果你在你的控制器中使用
respond\u to
js,我的初始答案会起作用。Doe似乎不起作用。。。如果我按你的方式做,我是否应该在控制器中添加一个不同的响应?现在它被设置为json而不是jsah对不起,我将更新我对
json
的回答,而不是
js
,但是是的,如果您在控制器中使用
respond\u to
js,我的初始回答会有效