我想为角色编号7传递4个参数,为其他角色传递3个参数。如果条件有错误,如果在条件中传递多个数据
未捕获的SyntaxError:意外的令牌==
$.ajax({
url: 'bulkUpdate',
type: 'get',
headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
if(role==7){
data: {
'ids' : join_selected_values,
'role' :role,
'prices':selected_price,
'currency':selected_currency
},
}
else{
data: {
'ids' : join_selected_values,
'role' :role,
'comment':comment
},
}
success: function (data) {
console.log('success');
},
});
答案 0 :(得分:1)
那是因为你提供的语法不正确。如果AJAX请求,只需在外部构建data
对象:
var ajaxData = {
ids: join_selected_values,
role: role
};
if (role === 7) {
ajaxData['prices'] = selected_price;
ajaxData['currency'] = selected_currency;
} else {
ajaxData['comment'] = comment;
}
$.ajax({
url: 'bulkUpdate',
type: 'get',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
data: ajaxData,
success: function(data) {
console.log('success');
},
})
答案 1 :(得分:1)
$.ajax({
url: 'bulkUpdate',
type: 'get',
headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
data : role==7 ? {
'ids' : join_selected_values,
'role' :role,
'prices':selected_price,
'currency':selected_currency
} : {
'ids' : join_selected_values,
'role' :role,
'comment':comment
},
success: function (data) {
console.log('success');
},
});
由于$.ajax({})
接受对象if(role==7){
将无法直接使用。
因此要么是用户三元运算符,要么在调用ajax函数之前决定该值。
var data = {};
if(role==7){
data = { 'ids' : join_selected_values,
'role' :role,
'prices':selected_price,
'currency':selected_currency
},
}else{
data = {'ids' : join_selected_values,
'role' :role,
'comment':comment
},
}
答案 2 :(得分:1)
您在if-else
对象中使用$.ajax
。因此,您可以做的是,您可以比较您的条件,然后在data
调用之外创建一个$.ajax
对象。使用它可以防止该错误。
var role = 10;
var data;
if(role == 7){
data = {
'ids' : join_selected_values,
'role' :role,
'prices':selected_price,
'currency':selected_currency
}
}else {
data = {
'ids' : join_selected_values,
'role' :role,
'comment':comment
}
}
$.ajax({
url: 'bulkUpdate',
type: 'get',
headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
data: data,
success: function (data) {
console.log('success');
}
});
答案 3 :(得分:1)
你可以像下面这样做
var datatosend = { ids: join_selected_values, role: role}
$.ajax({
url: 'bulkUpdate',
type: 'get',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
data: {data:datatosend},
success: function(data) {
console.log('success');
},
});
您将获得服务器端的所有参数,并根据角色执行其他操作。