Ioni c Http-запрос на получение ошибки с XML объектом - PullRequest
0 голосов
/ 09 марта 2020

У меня проблема при попытке отправить объект 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);
})

Нужна помощь, чтобы решить его.

...