function onGetCustomers(){ var requestUri = _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getByTitle('Clientes')/items/?$select=Title,Nombre,Apellidos"; //$.getjson() falla jqCall = $.getJSON(requestUri,null, onGetCustomersSuccess); jqCall.error(onError); }
Nos encontremos con un error como este:
25d
{"error":{"code":"-1, Microsoft.SharePoint.Client.ClientServiceException","message":{"lang":"en-US","value":"The HTTP header ACCEPT is missing or its value is invalid."},"innererror":{"message":"The HTTP header ACCEPT is missing or its value is invalid.","type":"Microsoft.SharePoint.Client.ClientServiceException","stacktrace":" at Microsoft.SharePoint.Client.Rest.RestRequestProcessor.Process()\r\n at Microsoft.SharePoint.Client.Rest.RestRequestProcessor.ProcessRequest()\r\n at Microsoft.SharePoint.Client.Rest.RestService.ProcessQuery(Stream inputStream, IList`1 pendingDisposableContainer)"}}}
0
Y esto se debe sencillamente a que si inspeccionamos a detalle los headers enviados en la petición encontraremos que hace falta algo adicional:
Headers enviados como parte del request:
Al hacer este tipo de llamadas debemos indicar, junto con el header Accept=application/json, el header: odata=verbose, es decir quedaría de esta forma: Accept=application/json; odata=verbose. Esto debido a que por el momento solo se soporta el formato verbose de JSON, el formato "light" no es soportado.
Luego entonces cambiamos la llamada para incluir este header, por el siguiente código:
function onGetCustomers(){ var requestUri = _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getByTitle('Clientes')/items/?$select=Title,Nombre,Apellidos"; var requestHeaders={ "ACCEPT":"application/json;odata=verbose", } $.ajax({ url: requestUri, type:"GET", contentType:"application/json", headers: requestHeaders, success:onGetCustomersSuccess, error:onError }); }
Después de realizar esto, la respuesta sera satisfactoria
Algunas referencias:
Important developer changes from Office and SharePoint 2013 Preview to Office and SharePoint 2013
OData Verbose JSON Format
Happy Coding!