Я пытаюсь отправить xml с помощью метода POST
в javascript, используя объект XmlHttpRequest
. На моем сервере у меня есть веб-служба, которая получает запрос SOAP.Wildfly allow OPTIONS Методы, но возврат 405 Метод не разрешен
Когда я хочу отправить xml, браузер сначала пытается отправить запрос на запрос OPTIONS
на сервер, но он возвращает OPTIONS 405 Method Not Allowed
.
Проблема заключается в том, что у меня в ответе заголовок Access-Control-Method-Allowed : POST,OPTIONS,GET,PUT
, поэтому я предполагаю, что мой сервер принимает метод OPTIONS, но мой веб-сервис понимает только POST
.
Вот код:
var xmlhttp = new XMLHttpRequest();
xmlhttp.open('POST', url, false);
var sr = mySoapRequest; //Here's my XML
xmlhttp.onreadystatechange = () => {
if (xmlhttp.readyState == 4) {
if (xmlhttp.status == 200) {
var xml = xmlhttp.responseXML;
console.log(xml);
this.showAlert(xml);
}
}
}
xmlhttp.setRequestHeader("content-type", "file/xml");
xmlhttp.send(sr);
Вот мой запрос HTTP протокола заголовки:
Accept:*/*
Accept-Encoding:gzip, deflate, sdch
Accept-Language:fr-FR,fr;q=0.8,en;q=0.6,en-US;q=0.4
Access-Control-Request-Headers:content-type
Access-Control-Request-Method:POST
Connection:keep-alive
DNT:1
Host:192.168.149.127
Origin:http://192.168.149.1:8100
Referer:http://192.168.149.1:8100/?ionicplatform=android
Вот мой HTTP заголовки ответа протокола:
Access-Control-Allow-Credentials:true
Access-Control-Allow-Headers:accept, authorization, content-type, x-requested-with
Access-Control-Allow-Methods:GET, POST, OPTIONS, PUT
Access-Control-Allow-Origin:*
Access-Control-Max-Age:1
Connection:keep-alive
Content-Length:224
Content-Type:text/xml;charset=UTF-8
Date:Thu, 16 Feb 2017 10:25:33 GMT
Server:WildFly/8
X-Content-Type-Options:nosniff
X-FRAME-OPTIONS:SAMEORIGIN
X-Powered-By:Undertow/1
X-XSS-Protection:1
Любые предложения?
Действительно, вы правы. Поскольку я не могу получить доступ к коду веб-сервиса, я разработаю другое решение с промежуточным сервисом, который не использует xmlhttprequest :) спасибо за ваш ответ –