我正在使用 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
我应该在单击按钮时添加聚合器,要成功,我必须选择一个用户和一个聚合器,但是当我单击该按钮时,它会给出错误和未定义的第二个参数日志。
这是 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>
希望大家帮帮忙!
聚合器 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>
最佳答案
您的问题是您设置的 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">
关于javascript - Ajax 请求第二个参数未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44022278/