繁体   English   中英

AJAX请求触发两次,同时成功调用一次

[英]AJAX request firing twice while success is called once

我正在使用laravel 5.4,我的Ajax功能每次调用两次,因为我创建了两个用户但是我想为每次点击创建一个用户

实际上它包括另一个页面,该页面没有打开

$(document).ready(function(){

或任何功能

$(document).on('click','#addproject',function(){

但它们包含脚本标记,但如果我不包含它们,那么只有在Ajax调用时才调用Ajax:

$(document).on('click','#addproject',function(){

        $.ajax({
            type:'get',
            url:"{!! URL::to('addProject') !!}",
            data:{},
            success:function(data){
                console.log('success');
                console.log(data);
                console.log(data.length);
                $("#newproject").fadeIn();
            },
            error:function(){

            },
        });
    });

路线:

Route::get('/addProject','HomeController@addProject');

控制器:

  public function addProject(Request $request){
        $project = new Project;
        $data = array(
        );

        $project->create($data);
    }

我解决了它,结果是我使用load()加载这个页面,但我应该使用window.location.href = "updateform";加载这个页面window.location.href = "updateform"; 虽然非常基本的错误。 和解决方案可能是我的应用程序特定

也许你可以尝试使用.one()方法。

<script type="text/javascript">
var handler = function(e){

    $.ajax({
      type:'get',
      url:"{!! URL::to('addProject') !!}",
      data:{},
      success: function(data){
        console.log('success');
        console.log(data);
        console.log(data.length);
        $("#newproject").fadeIn();
        $('#addproject').one('click', handler);
      },
      error: function(){}
    });
    e.stopImmediatePropagation();
    return false;
}

$('#addproject').one('click', handler);

一种方法将确保每个事件类型的每个元素最多执行一次处理程序。 然后,在成功之后,您将需要重新绑定事件处理程序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM