2012-06-08 7 views
8

I have few Services- con clean-URLLa chiamata JSONP AJAX aggiunge automaticamente il parametro callback. Come rimuoverlo?

e durante la chiamata a ciascun servizio, il pattern URL viene controllato.

Ora sto chiamando quegli URL tramite AJAX da un altro server utilizzando la tecnica JSONP.

Tuttavia, durante la chiamata, aggiunge automaticamente i parametri callback e _(timestamp) con gli URL di servizio.

Il parametro timestamp viene rimosso, aggiungendo cache : true. Ma non posso rimuovere il parametro di callback.

qui è il mio AJAX chiamando code-

$.ajax({ 
     type: 'GET', 
     url : "http://test.com/test/services/getFollowMeHistory/1/1/50", 
     dataType:'jsonp', 
     cache : true, 
     crossDomain : true, 
     //jsonpCallback : false, 

     error : function(XMLHttpRequest, textStatus, errorThrown) { 
      alert("Error occured while loading Loads."+textStatus); 
      } 
     }); 
}); 

sua vocazione l'URL as- http://test.com/test/services/getFollowMeHistory/1/1/50?callback=false e sto ottenendo 404 dal lato servizio.

Il mio servizio restituisce i dati come callbackMethod ({..JSON RESPONSE ...}). Quindi chiamerà automaticamente lo function callbackMethod(data) nel mio script. Non ho bisogno di questo parametro di callback nel mio URL.

solo bisogno di rimuovere la parte ?callback=... da URL

Plz aiuto.

+0

E 'JSONP, questo è ciò che è JSONP. –

+0

Il parametro di callback indica al server quale callback restituire con i dati. –

+0

dal lato servizio - sto restituendo json as- "callbackMethod ({... json response ..})". Quindi chiamerà automaticamente "function callbackMethod (data)" nel mio script. –

risposta

10

È necessario impostare jsonp: false e non jsonpCallback: false. È inoltre necessario impostare esplicitamente l'opzione jsonpCallback sul nome di callback che si prevede di ricevere dal servizio.

Riferimento: http://api.jquery.com/jQuery.ajax/

+0

Non l'ho ancora testato, basta leggere i documenti, ma apparentemente con 'jsonp: false', jQuery non passerà il parametro 'callback', ma si aspetta comunque una risposta JSONP; è per questo che richiede il parametro 'jsonpCallback' per indicare esplicitamente il nome della funzione di callback da creare, secondo quanto previsto dal server. – lanzz

+0

Grazie, ma è una vera chiamata interdominio –

+0

+1, questa è sicuramente la strada da percorrere se non si desidera utilizzare il parametro di callback. –

1
  1. Se si imposta di cache per true cioè memorizza nella cache la risposta richiesta , e tutte le chiamate JSONP successivi non tornerà nuovi dati .

  2. Senza la callback JSONP è inutilizzabile, perché non c'è il modo per leggere la risposta. Il callback è l'intero punto di JSONP.

  3. Il server deve essere impostato per gestire una richiesta JSONP. L'url che invii non influirà sul lato client. Quindi il tuo problema deve essere sul lato server. Che è dove dovresti gestirlo Rendendo questo non un problema jQuery.

Se si utilizza un callback personalizzato Prova questo, ma una funzione di callback personalizzato non è la stessa di rimuovere il callback:

jsonpCallback : "callbackMethod" 
+0

dal lato servizio - sto restituendo json come- "callbackMethod ({... json response ..})". Quindi chiamerà automaticamente "function callbackMethod (data)" nel mio script. Non ho bisogno di questo parametro di callback. –

+0

Ho aggiornato la mia risposta. – Fresheyeball

Problemi correlati