2013-01-10 3 views
12

Voici mon appel ajax.Erreur:: jQuery n'a pas été appelé

$.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); 
    } 
}); 

Réponse de mon exemple 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 
} 

je suis en train de faire un appel inter-domaine et d'obtenir erreur

jQuery180014405992737595236_1357861668479 was not called 

Mise à jour

Eh bien i essayé d'utiliser da taType: « JSON », mais à ce moment obtenir erreur

No Transport 
+3

Votre page distante émet-elle une réponse JSONP correctement formée? 'callback ({/ * json * /})' – Matt

+0

Oui, la réponse est JSON, pas JSONP. –

+0

@FelixKling bien j'ai essayé using dataType: json mais obtenant l'erreur "aucun transport" – iJade

Répondre

8

Cela suggère soit une erreur réseau ou un point final qui ne renvoie pas une réponse JSONP.

(Je suppose que l'échec de la recherche DNS que je reçois lors du test est parce que ce n'est pas votre véritable URL (veuillez utiliser example.com par exemple URLs, c'est pour ça) sinon, c'est votre problème).

+3

+1, et +1 encore (si je pourrais) pour le commentaire 'example.com'! ;-) –

+0

Désolé pour dat, ce n'est pas mon vrai url ..... j'ai mis à jour jeter un coup d'oeil – iJade

+1

C'est le point final ne servant pas jsonp correct, si c'était une erreur réseau, il obtiendrait le code d'erreur correspondant à la place. – Christoph

4

C'est une réponse JSONP incorrecte. Le serveur doit traiter l'argument callback=nameOfCallbackFunction de la demande GET et le servir comme un wrapper de fonction.

La bonne réponse devrait alors ressembler à ceci:

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

donc vous voulez dire que ce n'est pas une réponse jsonp mais json réponse.J'ai essayé avec json dataType mais n'obtenant aucune erreur de transport.J'ai mis à jour la question – iJade

+0

@jade Est-ce un appel crossdomain (pointant vers un emplacement différent de celui d'où provient votre page)? Si oui, vous ne pouvez utiliser JSONP ou utiliser [CORS] (http://enable-cors.org/) pour prévenir [SOP] (http://de.wikipedia.org/wiki/Same-Origin-Policy) les erreurs – Christoph

+0

bien en fait je ne sais pas si son domaine croisé.J'ai eu une erreur tout en ne pas utiliser le domaine croisé "No Transport", donc juste googlé et certains ont suggéré l'utilisation de domaine croisé résoudrait le problème – iJade

1

Je sais que c'est un vieux fil, mais ont du mal à obtenir un domaine croix ajax exemple de travail. J'ai beaucoup lu sur l'utilisation de dataType: jsonp et support.cors = true mais j'ai obtenu un 200 - succès mais un parserreur.

J'ai ensuite lu dans ce fil sur l'utilisation de l'un ou l'autre. J'ai alors changé le dataType: à json et ai laissé le support.cors = vrai et cela a fonctionné. Finalement . . .

Cela peut aider quelqu'un d'autre qui rencontre le même problème.

-1

La raison pour laquelle vous avez l'erreur JQueryXXXX est parce qu'il ya une erreur dans l'URL que vous appelez, vous devez présenter, donc ressemble « callback =? »:

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

Aussi, si vous appelez un .php rappelez-vous:

header('Content-Type: application/json; charset=utf8'); 
Questions connexes