[GeoNode-users] Upload a Geonode document through JavaScript REST API

Pankaj Sharma Pankaj.Sharma at auckland.ac.nz
Fri Feb 18 15:02:58 PST 2022


I am trying to use JavaScript (not Nodejs) to upload a GeoNode document from memory.
I have tried the JavaScript fetch API from browser. The GET works, but the POST gives error.

Anyone here can direct me how to prevent the required fields error?

let url = 'https://DOMAIN/api/v2/documents/';
let username = 'admin';
let password = 'PWD';
let headers = new Headers();
headers.set('Authorization', 'Basic ' + btoa(username + ":" + password));
var crf_token = $('[name="csrfmiddlewaretoken"]').attr('value');
headers.set('X-CSRFToken', crf_token);
const formData = new FormData()
formData.append('newDocumentName', file)
headers.set('body',formData)
fetch(url, {method:'POST',
        headers: headers
})
.then(response => response.json())
.then(json => console.log(json));

Error Message in the Browser console:
POST https://DOMAIN/api/v2/documents/ 400 (Bad Request)
{title: Array(1), abstract: Array(1), attribution: Array(1), doi:
Array(1), date: Array(1), ...}
abstract: ['This field is required.']
attribution: ['This field is required.']
bbox_polygon: ['This field is required.']
constraints_other: ['This field is required.']
data_quality_statement: ['This field is required.']date: ['This field is required.']
date_type: ['This field is required.']
doi: ['This field is required.']edition: ['This field is required.']
embed_url: ['This field is required.']featured: ['This field is required.']
is_approved: ['This field is required.']
is_published: ['This field is required.']language: ['This field is required.']
ll_bbox_polygon: ['This field is required.']
maintenance_frequency: ['This field is required.']
metadata_only: ['This field is required.']
popular_count: ['This field is required.']purpose: ['This field is required.']rating: ['This field is required.']
share_count: ['This field is required.']
srid: ['This field is required.']
supplemental_information: ['This field is required.']
temporal_extent_end: ['This field is required.']
temporal_extent_start: ['This field is required.']
thumbnail_url: ['This field is required.']title: ['This field is required.'][[Prototype]]: Object



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/geonode-users/attachments/20220218/10545664/attachment.html>


More information about the geonode-users mailing list