我正在使用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']." ".$username."<br /></div>";
}
}?>
</div>
答案 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">