Per me, che lavorano in Play e utilizzando jsRoutes questo è stato molto molto doloroso per capire.
Sembra che Play (Javascript) farà un Ajax ottenere senza problema utilizzando la seguente sintassi:
$.ajax(jsRoutes.controllers.MyController.ajax(inurlparam))
.done(function(data) {
}).fail(function(data) {
})
Tuttavia (e qui è la parte brutta) ... Se si desidera fare un post è necessario utilizzare il metodo absolutURL()
sull'URL per ottenere prima l'ajax (o il post) per non includere un [object%20Object]
nell'URL al momento della pubblicazione. Nessuna quantità di debug dell'URL o dei parametri del modulo sembrava indicare ciò che stava accadendo, né perché. Ho letteralmente "indovinato" questa soluzione per pura frustrazione. PS: nota le parentesi alla fine di absolutURL()
- js persone otterranno istantaneamente quelle che significano "fare" la funzione non solo passarmi il manico.
var url = jsRoutes.controllers.MyController.ajaxPost(inurlparam).absoluteURL();
var formData = $('#form').serialize();
$.ajax({
url: url,
type: "POST",
data: formData
}).done(function(data) {
}).fail(function(data) {
})
sto rispondere a questa qui come questo è dove Google mi ha portato una volta ho finalmente capito che potrebbe non essere il mio codice che è stato la causa del problema :)
che cosa è il vostro tipo di contenuto? dove sono i tuoi dati. è questa la tua richiesta completa di ajax? incolla il codice completo di '$ .ajax' – naveen
Possibile duplicato di [% 5Bobject% 20Object% 5D (404 non trovato) quando si tenta di inviare tramite AJAX] (http://stackoverflow.com/questions/10357445/5bobject20object5d-404-non -incerto-quando-tentare-di-inviare-via-ajax) –