Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript POST不应重新加载页面_Javascript_Jquery_Ruby On Rails_Ajax - Fatal编程技术网

Javascript POST不应重新加载页面

Javascript POST不应重新加载页面,javascript,jquery,ruby-on-rails,ajax,Javascript,Jquery,Ruby On Rails,Ajax,我有一个问题,我实现了一个代码,以便在悬停时添加文章的db ID,使文章成为可读的,下面的代码每次都会更新页面 这是我的代码(添加的数据类型) 我认为问题在于他刷新页面的“帖子”。。。 也许解决方案是堆叠所有ajax请求并稍后执行“post”,但我不知道如何做到这一点, 对不起,我英语不好 日志如下: Started POST "/user_activities.json" for 127.0.0.1 at 2018-05-25 14:31:49 +0200 Processing by User

我有一个问题,我实现了一个代码,以便在悬停时添加文章的db ID,使文章成为可读的,下面的代码每次都会更新页面 这是我的代码(添加的数据类型)

我认为问题在于他刷新页面的“帖子”。。。 也许解决方案是堆叠所有ajax请求并稍后执行“post”,但我不知道如何做到这一点, 对不起,我英语不好

日志如下:

Started POST "/user_activities.json" for 127.0.0.1 at 2018-05-25 14:31:49 +0200
Processing by UserActivitiesController#create as JSON
  Parameters: {"user_activity"=>{"activity_id"=>"3"}}
  User Load (1.6ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 ORDER BY "users"."id" ASC LIMIT $2  [["id", 2], ["LIMIT", 1]]
  ↳ /home/benjamin/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/activerecord-5.2.0.rc1/lib/active_record/log_subscriber.rb:98
   (0.4ms)  BEGIN
  ↳ app/controllers/user_activities_controller.rb:12
  Activity Load (0.3ms)  SELECT  "activities".* FROM "activities" WHERE "activities"."id" = $1 LIMIT $2  [["id", 3], ["LIMIT", 1]]
  ↳ app/controllers/user_activities_controller.rb:12
  UserActivity Exists (0.4ms)  SELECT  1 AS one FROM "user_activities" WHERE "user_activities"."user_id" = $1 AND "user_activities"."activity_id" = $2 LIMIT $3  [["user_id", 2], ["activity_id", 3], ["LIMIT", 1]]
  ↳ app/controllers/user_activities_controller.rb:12
Started POST "/user_activities.json" for 127.0.0.1 at 2018-05-25 14:31:49 +0200
  UserActivity Create (6.7ms)  INSERT INTO "user_activities" ("activity_id", "user_id", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id"  [["activity_id", 3], ["user_id", 2], ["created_at", "2018-05-25 12:31:49.932177"], ["updated_at", "2018-05-25 12:31:49.932177"]]
Processing by UserActivitiesController#create as JSON
  ↳ app/controllers/user_activities_controller.rb:12
  Parameters: {"user_activity"=>{"activity_id"=>"3"}}
   (2.5ms)  COMMIT
  ↳ app/controllers/user_activities_controller.rb:12
Redirected to http://localhost:3000/
Completed 200 OK in 26ms (ActiveRecord: 11.9ms)


  User Load (2.9ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 ORDER BY "users"."id" ASC LIMIT $2  [["id", 2], ["LIMIT", 1]]
  ↳ /home/benjamin/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/activerecord-5.2.0.rc1/lib/active_record/log_subscriber.rb:98
   (0.7ms)  BEGIN
  ↳ app/controllers/user_activities_controller.rb:12
  Activity Load (0.6ms)  SELECT  "activities".* FROM "activities" WHERE "activities"."id" = $1 LIMIT $2  [["id", 3], ["LIMIT", 1]]
  ↳ app/controllers/user_activities_controller.rb:12
  UserActivity Exists (0.9ms)  SELECT  1 AS one FROM "user_activities" WHERE "user_activities"."user_id" = $1 AND "user_activities"."activity_id" = $2 LIMIT $3  [["user_id", 2], ["activity_id", 3], ["LIMIT", 1]]
  ↳ app/controllers/user_activities_controller.rb:12
   (0.3ms)  ROLLBACK
  ↳ app/controllers/user_activities_controller.rb:12
Redirected to http://localhost:3000/
Completed 200 OK in 19ms (ActiveRecord: 5.7ms)


Started GET "/" for 127.0.0.1 at 2018-05-25 14:31:49 +0200
Processing by PagesController#home as HTML
回滚是因为我在模型中提到了uniqness:) 应用程序在发布后立即启动get/以便页面刷新到/i不知道为什么


谢谢:)

有时rails会以HTML类型提交ajax请求,然后您需要指定数据类型,您可以通过传递数据类型或像我那样来完成。 您可以这样尝试:

<script>
    $('.newness').hover(
        function () {
            $(this).addClass('hover');
           newnessId = $(this).data('id');
           $.ajax({url:'/user_activities.json', method: 'POST', data: {user_activity:{activity_id: newnessId}}})
        }
    )
</script>

$('.newness')。悬停(
函数(){
$(this.addClass('hover');
newnessId=$(this.data('id');
$.ajax({url:'/user\u activities.json',方法:'POST',数据:{user\u activity:{activity\u id:newnessId}}})
}
)

您是否忘记在ajax请求中提到数据类型:“脚本”

$('.newness').on('hover',function () {
  $(this).addClass('hover');
  var newnessId = $(this).data('id');
  $.ajax({
    url: '/user_activities', 
    method: 'POST', 
    data: {
      user_activity: {
        activity_id: newnessId
      }
    },
   dataType: "script"
  })
})
答案是:) 在我的控制器中,我只是删除

重定向到根路径

class UserActivitiesController < ApplicationController

  def destroy
    @useractivity = UserActivity.find(params[:id])
    @useractivity.destroy
  end

  def create
    @user = current_user
    @useractivity = @user.user_activities.build(useractivities_params)
    @useractivity.save
  end

private

  def useractivities_params
    params.require(:user_activity).permit(:activity_id)
  end
end
class UserActivitiesController
您的AJAX请求不会重新加载页面。如果发生这种情况,您的逻辑中一定有其他原因导致了这种情况。Console中的错误是什么?通过保存日志检查是否正在刷新。我将日志放在我的帖子中:)您还可以粘贴控制器代码吗。谢谢@sunny这是我控制器中的那一行:重定向到根路径…请花时间描述问题所在以及此解决方案的帮助原因。记住,我们在这里是为了教育人们,而不仅仅是向他们倾倒代码。还有-你改变了什么?我看不见it@RoryMcCrossan我更改了url类型,请仔细阅读。你为什么要这样做?OP没有给出URL错误或需要扩展的迹象。这也不会影响发生意外重定向的问题。请仔细阅读问题。我已经提到,谢谢你的回答,仍然没有为我工作,我把日志放在我的帖子:)
class UserActivitiesController < ApplicationController

  def destroy
    @useractivity = UserActivity.find(params[:id])
    @useractivity.destroy
  end

  def create
    @user = current_user
    @useractivity = @user.user_activities.build(useractivities_params)
    @useractivity.save
  end

private

  def useractivities_params
    params.require(:user_activity).permit(:activity_id)
  end
end