2017-06-15 1 views
1

J'essaie d'obtenir une réponse json de l'API Comicvine mais j'obtiens l'erreur suivante. comicvine.gamespot.com/:1 Uncaught SyntaxError: Jeton inattendu:jquery ajax Uncaught SyntaxError: Jeton inattendu: lors de l'appel d'un API

Je vois mon résultat json, formaté, dans le corps de la réponse mais je reçois l'erreur de la console ci-dessus.

export function getSeriesFromComicVine() { 
    const url = "http://comicvine.gamespot.com/api/characters/?api_key=f18c6362ec6d4c0d7b6d550f36478c1cd6c04a49&filter=gender:male,name:hawkeye&format=json&callback=?"; 
    $.ajax({ 
    url: url, 
    // data: {test: "test"}, 
    type: 'GET', 
    crossDomain: true, 
    jsonpCallback: 'callback', 
    dataType: 'jsonp', 
    jsonp: false, 
    jsonpCallback: "myJsonMethod" 
    success: function (data) { 
    console.log(data); 
    } 
    }); 
} 
+0

'Je vois mon résultat JSON, formatted' - mais est-il valide (ordinateur dit non),' dans la réponse header' - sûrement il est dans la réponse ** corps **! –

+0

pouvez-vous voir que la réponse est en effet JSON - mais pas JSONP - ressemble à 'comicvine.gamespot.com' ne fait pas JSONP –

+0

Eh bien, je reçois la réponse. Et tous les exemples que j'ai vus ont utilisé jsonp. Je vais ajouter la réponse que je reçois dans la question. –

Répondre

2

Vous devez définir format=jsonp pas json

le nom du paramètre de rappel jsonp doit être json_callback selon comicvine.gamespot.com - Je trouve cela en allant à url https://comicvine.gamespot.com/api/characters/?api_key=[your api key]&filter=gender:male,name:hawkeye&format=jsonp dans le navigateur, et il m'a dit ce qui était manquante - API très sympathique - la réponse a une valeur d'erreur

"'jsonp' format requires a 'json_callback' arguement" 

et pas besoin de callback=? dans l'URL - car jquery ajoute le paramètre de rappel et i rappel du nom sn't

function getSeriesFromComicVine() { 
    const url = "https://comicvine.gamespot.com/api/characters/?api_key=[your api key]&filter=gender:male,name:hawkeye&format=jsonp"; 
    $.ajax({ 
     url: url, 
     type: 'GET', 
     dataType: 'jsonp', 
     jsonp: "json_callback", 
     success: function (data) { 
      console.log(data); 
     } 
    }); 
} 
+0

Merci! Cela a fonctionné comme un charme. –