I'm trying to make a web application that is able to :
1) Upload raster data to GeoServer so when I use this command on cmd it works
curl -u admin:geoserver -v -XPUT -H "Content-type: image/tiff" --data-binary @"C:\Path\odm_orthophoto.tif" http://localhost:8080/geoserver/rest/workspaces/raster_data/coveragestores/int_dec/file.geotiff
but on AJAX it doesn't work, giving me error 401 unauthorized here's my code
$.ajax({
beforeSend: function (xhr) {
xhr.setRequestHeader ("Authorization", "Basic YWRtaW46Z2Vvc2VydmVy");
},
url: "http://localhost:8080/geoserver/rest/workspaces/raster_data/coveragestores/int_decc/file.geotiff",
contentType: "image/tiff",
method : 'PUT',
xhrFields:{
withCredentials: true
},
data : '--data-binary @"C:/Path/odm_orthophoto.tif"' ,
success : function(data){
console.log(data);
},
error : function(httpReq,status,exception){
alert(status+" "+exception);
}
});
I also tried to use
beforeSend: function (xhr) {
xhr.setRequestHeader('Authorization', 'Basic' + 'admin:geoserver'
}
but still getting the same error. I enabled CORS in web.xml in WEB-INF GeoServer folder, without the jetty.jar file like said here https://gis.stackexchange.com/questions/210109/enabling-cors-in-geoserver-jetty because adding it give me error 503 when opening geoserver.
2) Read layer's name from the coverage store also with REST API it works on Windows with this command
curl -u admin:geoserver -XGET http://localhost:8080/geoserver/rest/workspaces/raster_data/coveragestores/int_dec/coverages.json
My JavaScript code is :
$.ajax({
url: "http://localhost:8080/geoserver/rest/workspaces/raster_data/coveragestores/int_dec/coverages.json",
type: 'GET',
xhrFields: {
withCredentials: false
},
dataType: 'jsonp',
success : function(data){
console.log(data);
},
error : function(httpReq,status,exception){
alert(status+" "+exception);
}
});
but I get this error
unexpected token: ':'
When I add
xhrFields: {
withCredentials: false
}
to AJAX parameters I get the same error as 1) 401 unauthorized , which should eliminate CORS problem according to https://stackoverflow.com/questions/38953965/uncaught-syntaxerror-and-cors-error-using-ajax-with-jsonp/38956911#38956911 using json as datatype returns the same error
I'm using GeoServer 2.15 and JRE 8u221 32bits
UPDATE :
using withCredentials: true , worked for getting json list but not for the PUT method i get know HTTP/1.1 500 Server Error here's the output of my curl command i think i need to change url to http:/localhost:8080 but i don't know what to do with the /geoserver/rest/workspaces/raster_data/coveragestores/int_decc/file.geotiff 
No comments:
Post a Comment