Ajax请求第二个参数未定义

时间:2017-05-17 10:27:51

标签: javascript jquery ajax vue.js

我正在使用Vue.js执行Ajax请求,它有两个参数。第一个是好的,但第二个参数在控制台中记录未定义。我试图了解如何解决这个问题,但我无法找到合适的解决方案。

这是$ .ajax()代码:

//$.ajax() to add agregators to users
  addAgregators: function(id1, data1) {
    var self = this;
    console.log(id1);
    console.log(data1);//THIS IS THE PARAMETER RETURNING UNDEFINED
    var formData = new FormData();
    formData.append('id1',data1);
    $.ajax({
        url: url + "/addAgregators",
        type: "POST",
        data: {
            agregators: data1,
            id: id1
        },
        dataType: "json",
        data:formData,
        contentType: false,
        cache: false,
        processData: false,
        success:function(obj){
          console.log(obj);//
          this.agr1=obj;
          console.log('success!');
          reDesignAgregators();
        },
        error:function(){
            console.log('error');
        }//end error function
    });//end addAgregators $.ajax() function
  },//end addAgregators function

当我点击一个按钮时我应该添加agregators并为此成功,我必须选择一个用户和一个agregator,但是当我点击该按钮时,它会给出错误并且第二个参数日志未定义。 / p>

这是HTML:

             <div class="row">
                <div class="col-md-12">
                    <div class="col-md-1">
                        <button id="addagr">
                            <img id="add" v-on:click="addAgregators('<?php echo $value1['id'] ;?>')" src="<?php echo $url;?>/public/images/plus.svg">
                        </button>
                    </div>
                    <div  class="col-md-7" id="addlab">Add Agregator</div>
                </div>
            </div>

希望你们能帮忙!

Agregators HTML代码:

<div id="aggs">
                        <?php 
                        if(!empty($agrusr))
                        { 
                            foreach($agrusr as $value1) 
                            {
                                $username= $value1['username'];
                                if($username=="" || $username==NULL)
                                {
                                    $username="Unatributed";
                                }
                                $id='au'.$value1['id'];?>
                                <div class="row oddEven allAggregatores " id='<?php echo $value1['uid'];?>' >
                                    <div id="<?php echo $id;?>">
                                    <div class="col-md-1">
                                        <input type="checkbox" value=<?php echo $value1['id'];?>  name="agrwithuser[]" value="2">
                                    </div>
                                    <div class="col-md-7">
                                        <span id="items"><?php echo ucfirst($value1['agregator']);?></span>
                                    </div>
                                    <div class="col-md-2">
                                        <div class="colorsByUsers" :style="{backgroundColor: randomColor()}"><?php echo ucfirst($username);?></div>
                                    </div>
                                    </div>
                                </div>

                            <?php 
                            //  echo "<div id=".$id."><input type='checkbox' name='agrwithuser[]' value=". $value1['id'] .">". $value1['agregator']." &nbsp;&nbsp;&nbsp;".$username."<br /></div>";                   
                            }
                        }?>

                    </div>

1 个答案:

答案 0 :(得分:1)

您的问题是您设置data:formData会覆盖Ajax配置中的data属性。

并且formData仅包含您在该行中附加的id1属性:

formData.append('id1',data1);

这就是为什么你只有一个参数,第二个是undefined

您需要从Ajax配置中删除行data:formData并使用HTML中的两个参数调用addAgregators()函数,如下所示:

<img id="add" v-on:click="addAgregators('<?php echo $value1['id'] , $value1['agregators'] ;?>')" src="<?php echo $url;?>/public/images/plus.svg">