У меня проблема при попытке отправить объект XML в Geoserver. Когда я пытаюсь с почтальоном, он успешно отправляет, даже в демоверсии Geoserver. Но с моим эмулятором я получаю эти ошибки.
Я пробовал HTTPClient, XMLHttpRequest и HTTP от '@ionic-native/http/ngx';
, но я не получаю хорошую обратную связь.
С XMLHttpRequest и HttpClient я получаю эта ошибка:
Доступ к XMLHttpRequest по адресу http://ip_address: порт / геосервер / worksapce / wfs 'из источника' http://localhost 'был заблокирован политикой CORS: Ответ на запрос предварительной проверки не проходит проверку контроля доступа: в запрашиваемом ресурсе отсутствует заголовок «Access-Control-Allow-Origin».
И с HTTP из '@ionic-native/http/ngx';
Я получаю это
Ошибка: advanced-http: опция «data» настроена для поддержки только следующих типов данных: Object в Object.processData (helpers. js: 400) в Object. sendRequest (publi c -интерфейс. js: 158) в Object.post (publi c -интерфейс. js: 174) в callCordovaPlugin (vendor-es2015. js: 98821) в vendor-es2015 . js: 98636 на vendor-es2015. js: 98594 на новом ZoneAwarePromise (polyfills-es2015. js: 3 882) в tryNativePromise (vendor-es2015. js: 98593) в getPromise (vendor-es2015. js: 98614) в wrapPromise (vendor-es2015. js: 98619)
Вот мой код
var xmlData= '<wfs:Transaction service="WFS" version="1.0.0" '+
'xmlns:topp="http://www.openplans.org/topp" '+
'xmlns:ogc="http://www.opengis.net/ogc" '+
'xmlns:wfs="http://www.opengis.net/wfs">'+
'<wfs:Update typeName="topp:tasmania_roads">'+
'<wfs:Property>'+
'<wfs:Name>TYPE</wfs:Name>'+
'<wfs:Value>street</wfs:Value>'+
'</wfs:Property>'+
'<ogc:Filter>'+
'<ogc:FeatureId fid="tasmania_roads.1"/>'+
'</ogc:Filter>'+
'</wfs:Update>'+
'</wfs:Transaction>';
//Request using HttpCLient
let doc = parser.parseFromString(xmlData, "application/xml");
let headers = new HttpHeaders()
.set("Authorization", btoa("admin:geoserver"))
.set('Access-Control-Allow-Origin', '*')
.set('Content-Type', 'application/xml');
this.httpClient.post(this.ENDPOINT + 'geoserver/workspace/wfs', doc, {headers: headers,
withCredentials : true, observe : 'body'})
.subscribe((rs) => {
console.error(rs);
})
//Request using HTTP
this.httpNative.post(this.ENDPOINT + 'geoserver/workspace/wfs',xmlData , {
Authorization: btoa("admin:geoserver"), 'Content-Type': 'application/xml',
}
).then((rs) => {
console.log(rs);
}).catch((err) => {
console.error(err);
})
Нужна помощь, чтобы решить его.