XmlHttpRequest
オブジェクトを使用して、JavaScriptでPOST
メソッドでxmlを送信しようとしています。 私のサーバーには、SOAPリクエストを受け取るWebサービスがあります。WildflyはOPTIONSメソッドを許可しますが返す405メソッドが許可されていません
xmlを送信するときに、ブラウザはプリフライトOPTIONS
要求をサーバーに送信しようとしますが、OPTIONS 405 Method Not Allowed
が返されます。
問題は私の応答ヘッダーにAccess-Control-Method-Allowed : POST,OPTIONS,GET,PUT
があるので、私のサーバーはOPTIONSメソッドを受け入れると思うが、私のWebサービスは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プロトコルのリクエストヘッダです:
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
任意の提案:
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プロトコルのレスポンスヘッダーですか?
確かに、あなたは正しいです。 Webサービスコードにアクセスできないので、xmlhttprequest :)を使用しないミドルウェアサービスで他のソリューションを開発します:)ありがとう –