javascript - example - request post angularjs
AngularJS Untaught SyntaxError: token inesperado: (1)
De acuerdo, intenté varios intentos y nada está funcionando
Verificó las siguientes respuestas
preguntas / 26262235 / jsonp-returning-uncaught-syntaxerror-unexpected-token-angularjs-routingnu
preguntas / 16344933 / angularjs-jsonp-not-working / 16352746 # 16352746
preguntas / 19269153 / jsonp-request-in-angularjs-doesnt-work-like-in-jquery
preguntas / 19669044 / angularjs-getting-syntax-error-in-returned-json-from-http-jsonp
Y ninguno de ellos resolvió mi problema.
Me gustaría utilizar API Giant Bombs: http://www.giantbomb.com/api/
Sí, eché un vistazo a las publicaciones del foro, nada funciona.
$http({
method: ''JSONP'',
url: ''http://www.giantbomb.com/api/game/3030-4725/'',
params: {
api_key: $rootScope.api_key,
format: ''jsonp'',
callback: ''JSON_CALLBACK''
}
}).then(function (data) {
$scope.data = data;
console.log($scope.data)
});
Error
Uncaught SyntaxError: Unexpected token :
¿Podría alguien darme una pista?
Debido a que es realmente frustrante, incluso envolví los datos con el mismo resultado de JSON_CALLBACK ()
La razón de esto es que angular requiere servicio devuelve jsonp, pero no lo hace
Tu código hace esta solicitud:
http://www.giantbomb.com/api/game/3030-4725/?json_callback=angular.callbacks._0&format=jsonp
Y en la consola de red puede ver la respuesta:
{"error":"''jsonp'' format requires a ''json_callback'' arguement","limit":0,"offset":0,"number_of_page_results":0,"number_of_total_results":0,"status_code":103,"results":[]}
así que el parámetro para la devolución de llamada debería llamarse: json_callback, no solo callback.
$http({
method: ''JSONP'',
url: ''http://www.giantbomb.com/api/game/3030-4725/'',
params: {
format: ''jsonp'',
json_callback: ''JSON_CALLBACK''
}
})
Después de eso, puedo ver un error de respuesta sobre la clave de la API. Probablemente esté bien en tu caso. Así que lo pospondré, obtendrás el JSONP correcto
http://www.giantbomb.com/api/game/3030-4725/?json_callback=angular.callbacks._0&format=jsonp
{"error":"Invalid API Key","limit":0,"offset":0,"number_of_page_results":0,"number_of_total_results":0,"status_code":100,"results":[]}
El otro problema sería que su función en ese momento no obtiene los datos directamente, sino la respuesta, que son los objetos que transportan datos, así que:
.then(function (response) {
$scope.data = response.data;
console.log(response.data)
});
La última recomendación, no use $ scope en los controladores, más bien use la sintaxis de "controlador como".