2013-01-10 16 views
12

Ecco la mia chiamata Ajax.Errore:: jQuery non è stato chiamato

$.ajax({ 
    type: "GET", 
    url: "http://example.com/v1/search?keyword=r", 
    dataType: "jsonp", 
    crossDomain: true, 
    success: function (responseString) { 
     alert(responseString); 
    }, 
    error: function (xhr, errorType, exception) { 
     var errorMessage = exception || xhr.statusText; 
     alert(errorMessage); 
    } 
}); 

risposta dal mio esempio url

{ 
    "response": [{ 
     "attributes": { 
      "type": "enge", 
      "url": "/services/data/v24.0/sobjects/Challenge__c/a0GZ0000005Vvh4MAC" 
     }, 
     "name": "Really", 
     "end_date": "2013-02-07T15:26:00.000+0000", 
     "total": 350.0, 
     "registered_members": 0.0, 
     "id": "30", 
     "type": "Design", 
     "id": "a0GZ0000005Vvh4MAC", 
     "start_date": "2012-11-19T16:52:00.000+0000", 
     "description": "This is my really cool challenge", 
     "remaining_days": 28.0, 
     "categories__r": [{ 
      "attributes": { 
       "type": "Category__c", 
       "url": "/services/data/Category__c/a08Z0000000RNI2IAO" 
      }, 
      "id": "0RNI2IAO", 
      "display_name": "Andy" 
     }, { 
      "attributes": { 
       "type": "Category__c", 
       "url": "/services/Category__c/a08Z0000000RNI3IAO" 
      }, 
      "id": "a0O", 
      "display_name": "ADR" 
     }] 
    } 

    }], 
    "count": 1 
} 

sto cercando di effettuare una chiamata di dominio croce e ottenere errore

jQuery180014405992737595236_1357861668479 was not called 

Aggiornamento

Bene i ho provato ad usare da taType: "json" ma a quel punto ottenere errore

No Transport 
+3

La tua pagina remota sta emettendo una risposta JSONP correttamente formata? 'callback ({/ * json * /})' – Matt

+0

Sì, la risposta è JSON, non JSONP. –

+0

@FelixKling ho provato ad usare dataType: json ma ricevendo errore "No Transport" – iJade

risposta

8

Questo suggerisce o un errore di rete o di un punto finale che non restituisce una risposta JSONP.

(Sto indovinando l'errore di ricerca DNS che ottengo durante il test è perché non è il tuo vero URL (per favore usa example.com per esempio gli URL, questo è quello che è lì per) se no, allora quello è il tuo problema).

+3

+1, e di nuovo +1 (se potessi) per il commento 'esempio.com'! ;-) –

+0

Scusate per dat, non è il mio vero url ..... ho aggiornato date un'occhiata – iJade

+1

È l'endpoint che non serve correttamente jsonp, se si trattasse di un errore di rete avrebbe invece ottenuto il codice di errore corrispondente. – Christoph

4

È una risposta JSONP errata. Il server deve elaborare l'argomento callback=nameOfCallbackFunction della richiesta GET e servirlo come un wrapper di funzione.

La risposta giusta, allora dovrebbe essere simile a questo:

nameOfCallbackFunction({"yourjson": "here"}); 
+0

quindi vuol dire che non è una risposta jsonp ma risposta json.Io ho provato con json dataType ma riceve errore No Transport.Io ha una domanda aggiornata – iJade

+0

@jade È una chiamata crossdomain (che punta a una posizione diversa da quella da cui proviene la tua pagina)? Se sì, puoi usare solo JSONP o usare [CORS] (http://enable-cors.org/) per prevenire gli errori [SOP] (http://de.wikipedia.org/wiki/Same-Origin-Policy). – Christoph

+0

beh, in realtà non so se è il suo dominio incrociato. Ho ricevuto un errore mentre non utilizzare il dominio incrociato "Nessun trasporto", quindi basta cercare su Google e alcuni suggeriscono di utilizzare il dominio incrociato per risolvere il problema – iJade

1

So che questo è un vecchio thread, ma ho lottato per ottenere una croce esempio dominio ajax lavoro. Ho letto molto sull'utilizzo di dataType: jsonp e support.cors = true ma ho ottenuto un 200 - successo ma un parseerror.

Ho quindi letto in questa discussione sull'utilizzo dell'uno o dell'altro. Ho quindi cambiato il dataType: json e lasciato il supporto.cors = true e ha funzionato. Finalmente . . .

Questo può aiutare qualcun altro che incontra lo stesso problema.

-1

Il motivo per cui si ha l'errore JQueryXXXX è perché c'è un errore nella URL che si sta chiamando, è necessario introdurre, così si presenta come "callback =?":

"http://example.com/v1/search?callback=?keyword=r" 

Anche Se ricorda un .php:

header('Content-Type: application/json; charset=utf8'); 
Problemi correlati