2012-02-16 25 views
7

Soy nuevo para hacer la solicitud de Ajax y he reunido los siguientes Pastie. La línea 107 es mi $ .PUT y está arrojando un error en firebug que $ .PUT no funciona. En cuanto a la solicitud de Ajax sé que esto está mal, sin embargo, estoy bastante perdido en cuanto a lo que debo hacer dentro de la función de éxito addCell. ¿Voy por el camino correcto?PUT solicitud de Ajax

Editado

function _ajax_request(url, data, callback, type, method) { 
    return jQuery.ajax({ 
     type: 'PUT', 
     url: "slot_days/show", 
     data: data, 
     success: function(data) 
     { 
callback($.put('/slot_days/show', { '/slot_days/': 'slot_times' }, function(result) 

      { 

      }); 
     ) 
     } 
    }); 
} 

jQuery.extend({ 
    put: function(url, data, callback, type) { 
     return _ajax_request(url, data, callback, type, 'PUT'); 
}}); 
+0

¿Qué se requiere es PUT o POST? –

Respuesta

15

Usted tiene un error aquí (la función success debe ser anónimo):

return 
    jQuery.ajax({ 
     type: 'PUT', 
     url: 'slot_days/show', 
     data: data, 
     success: function addCell() { 

     } 
    }); 

debe ser:

function _ajax_request(url, data, callback, method) { 
    return jQuery.ajax({ 
     url: url, 
     type: method, 
     data: data, 
     success: callback 
    }); 
} 

y extender jQuery:

jQuery.extend({ 
    put: function(url, data, callback) { 
     return _ajax_request(url, data, callback, 'PUT'); 
}}); 

y un ejemplo de uso de ejemplo:

$.put('/url', { 'foo': 'bar' }, function(result) { 
    // do something with the results of the AJAX call 
}); 
+0

@Djj, no, quise decir que tienes JavaScript no válido por ahí. El problema no es que esté vacío. Veremos esto más tarde. El problema es que en su código escribió: 'success: function addCell() {}' que no es válido. Debe ser 'success: function() {}'. Y si desea invocar alguna función que se pasó como parámetro, por ejemplo, podría: 'success: callback'. –

+0

@Djj, por supuesto que puedes. Simplemente páselo como tercer argumento del método '$ .put':' $ .put ("/" + getDiaryId() + "/ slot_days /" + getSlotId + "/ slot_times /" + 0, slot_time, addCell); ' –

+0

Me gusta esto: 'success: addCell ($. Put ("/"+ getDiaryId() +"/slot_days/"+ getSlotId +"/slot_times/"+ 0, slot_time, addCell)) ' – David

0

parece que no está incluido el _ajax_request_PUT.js en su archivo principal. Esta es la razón por la cual no se puede encontrar la función $.put. Inclúyalo primero, entonces su error desaparecerá.

+0

Bien, esto puede sonar tonto, pero ¿cómo voy a hacer esto? – David

+0

Al igual que usted incluye jquery.' " ' –

+0

Incluí el archivo en mi archivo principal que aún recibía el mismo error. Probablemente tiene algo que ver con mi función de éxito y la devolución de llamada – David

0

Consulte la respuesta simple y limpia aquí: https://stackoverflow.com/a/11549679/916632 Simplemente cambie el valor de tipo a "PUT".

También maneja la respuesta 415 que podría estar causando problemas a los demás (me bloqueó). También la respuesta 400 en términos del objeto de datos enviado.

Cuestiones relacionadas