【发布时间】:2015-01-11 18:52:21
【问题描述】:
我有这个功能:
function tagsInputFabricantes(data) {
console.log(data);
var fabricante_distribuidor_id = data.ent.id,
producto_solicitud_id = data.ent.idProductoSolicitud,
fabricante_producto_solicitud_id = data.ent.idFabricanteProductoSolicitud;
$('#tagsInputFab-' + data.ent.idFabricanteProductoSolicitud).select2({
placeholder: 'Seleccione uno o más países',
closeOnSelect: false,
multiple: true,
width: '100%',
ajax: {
dataType: 'json',
cache: true,
quietMillis: 2000, // waits 2 seconds before triggers the search
url: function () {
return Routing.generate('obtenerPaisesNoAgregadosFabricante');
},
data: function (pais, fabricante_distribuidor_id, producto_solicitud_id, fabricante_producto_solicitud_id) {
return {
filtro: pais,
fabricante_distribuidor_id: fabricante_distribuidor_id,
producto_solicitud_id: producto_solicitud_id,
fabricante_producto_solicitud_id: fabricante_producto_solicitud_id
}
},
results: function (data) {
return {
results: data.entities
};
}
},
formatAjaxError: function () {
return Translator.trans('mensajes.msgNoConexionServidor', {}, 'AppBundle');
}
});
}
我需要将三个额外的参数传递给要通过 REQUEST 发送的 Ajax 查询,这就是我正在做的事情:
console.log(data); // watch wath is getting in this object
// Gets the values and assign to vars
var fabricante_distribuidor_id = data.ent.id,
producto_solicitud_id = data.ent.idProductoSolicitud,
fabricante_producto_solicitud_id = data.ent.idFabricanteProductoSolicitud;
....
// Pass needed parameters as extra parameters for data
data: function (pais, fabricante_distribuidor_id, producto_solicitud_id, fabricante_producto_solicitud_id) {
return {
filtro: pais,
fabricante_distribuidor_id: fabricante_distribuidor_id,
producto_solicitud_id: producto_solicitud_id,
fabricante_producto_solicitud_id: fabricante_producto_solicitud_id
}
}
但它不起作用,因为 URL 只包含这个:url&filtro=&fabricante_distribuidor_id=1&producto_solicitud_id=&fabricante_producto_solicitud_id=,这是错误的。 console.log() 将此记录到控制台:
Object {success: true, ent: Object}
ent: Object
id: 1
idFabricanteProductoSolicitud: 18
idProductoSolicitud: 18
nombre: "Dist1"
pais: ""
__proto__: ...
错误在哪里?为什么不将参数传递给data 函数?我做错了什么?
【问题讨论】:
-
给ajax加一个参数:
dataType: 'script' -
@surajck 为什么要从
json更改为script?这种变化的目的是什么? -
我不知道为什么你的
data属性是一个函数。它可以是纯文本、JSON、XML 等。不是函数。在 ajax 调用之外创建 JSON 并将其作为data -
@surajck 这是一个 JSON,注意括号
{ ... } -
@surajck 看来您对该插件并不熟悉。你为什么说
data不应该在文档清楚地显示它的时候起作用
标签: javascript jquery ajax jquery-select2