angularjs - reactivos - tablas angular 4
¿Cómo acceder a los datos del almacén de datos de Google utilizando la solicitud POST de $ HTTP de Anguarjs? (3)
He intentado y debajo está mi código. No sé qué salió mal
$http({
method: ''POST'',
headers:''{"gqlQuery": {"queryString": "select * from culture" }}'',
url: ''https://datastore.googleapis.com/v1/projects/nammaooru-3630e:runQuery?fields=batch%2Cquery&key=[myapikey]''
}).then(function successCallback(response) {
alert("Success"+response);
// this callback will be called asynchronously
// when the response is available
}, function errorCallback(response) {
alert("Error"+response);
// called asynchronously if an error occurs
// or server returns response with an error status.
});
Obtuvo un error en Solicitud angular **
Failed to load resource: the server responded with a status of 401 ()
Se produjo un error al intentar en el cartero
URL : https://datastore.googleapis.com/v1/projects/nammaooru-3630e:runQuery?fields=batch%2Cquery&key=[apikey]
Method : POST
{
"error": {
"code": 401,
"message": "The request does not have valid authentication credentials.",
"status": "UNAUTHENTICATED"
}
}
Pero salí, puse respuesta del sitio Google Developer
https://cloud.google.com/datastore/docs/reference/rest/v1/projects/runQuery#http-request
{
"batch": {
"entityResultType": "FULL",
"entityResults": [
{
"entity": {
"key": {
"partitionId": {
"projectId": "nammaooru-3630e"
},
"path": [
{
"kind": "culture",
"id": "5629499534213120"
}
]
},
"properties": {
"types": {
"stringValue": "",
"excludeFromIndexes": true
},
"images": {
"stringValue": "",
"excludeFromIndexes": true
},
"bname": {
"stringValue": "Kangeyam Kalai"
},
"date": {
"timestampValue": "2017-01-14T12:44:56.933Z"
},
"title": {
"stringValue": ""
},
"description": {
"stringValue": "Coimbatore Kongu nadu region",
"excludeFromIndexes": true
}
}
},
"cursor": "Ci8SKWoRc35uYW1tYW9vcnUtMzYzMGVyFAsSB2N1bHR1cmUYgICAgICAgAoMGAAgAA==",
"version": "1484398012256000"
}
],
"endCursor": "Ci8SKWoRc35uYW1tYW9vcnUtMzYzMGVyFAsSB2N1bHR1cmUYgICAgICAgAoMGAAgAA==",
"moreResults": "NO_MORE_RESULTS"
},
"query": {
"kind": [
{
"name": "culture"
}
]
}
}
--disable-web-security y reinicie el chrome mediante la ejecución debajo del comando en la ventana "Ejecutar":
chrome --allow-file-access-from-files --disable-web-security --user-data-dir
Dudo que este sea un problema relacionado con CORS. ¿Tiene acceso desde POSTMAN?
Otra cosa, su cadena de consulta de los encabezados, debe estar en el cuerpo de la solicitud.
No soy un usuario de angularjs, pero mirando el error supongo que no has hecho la autenticación. Google está utilizando OAuth 2.0 para la autenticación, puede leer sobre esto aquí
Básicamente, debe solicitar un token de autenticación y luego usar el token adquirido en sus llamadas de API. ( Ese es el bit del encabezado que te falta, Authorization: Bearer yourtokenhere )