function soap() {
var req = new XMLHttpRequest();
req.open('POST', 'https://sprawdz-status-vat.mf.gov.pl', true);
var sr ='<?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.mf.gov.pl/uslugiBiznesowe/uslugiDomenowe/AP/WeryfikacjaVAT/2018/03/01"><SOAP-ENV:Body><ns1:NIP>6920000013</ns1:NIP></SOAP-ENV:Body></SOAP-ENV:Envelope>';
req.onreadystatechange = function () {
if (req.readyState == 4) {
if (req.status == 200) {
console.log(req.responseText);
}
}
}
//req.withCredentials = 'false';
//req.setRequestHeader('Accept-Language', 'lang=pl-PL');
req.setRequestHeader('Content-Type', 'text/xml; charset=utf-8');
req.setRequestHeader("SOAPAction", "http://www.mf.gov.pl/uslugiBiznesowe/uslugiDomenowe/AP/WeryfikacjaVAT/2018/03/01/WeryfikacjaVAT/SprawdzNIP");
req.send(sr);
}
Próbuję z użyciem w/w funkcji przesłać z przeglądarki na serwer MF komunikat SOAP i uzyskać odpowiedź o statusie VAT zadanego podatnika.
- Jeżeli żaden z nagłówków "setRequestHeader" nie jest ustawiony dostaję komunikat:
[HTTP/1.1 415 Cannot process the message because the content type 'text/plain;charset=UTF-8' was not the expected type 'text/xml; charset=utf-8'. 78ms]
- Jeżeli jest ustawiony nagłówek "Content-Type" oraz jakikolwiek inny zakomentowany dostaję komunikat:
[HTTP/1.1 400 Bad Request 78ms]
Zablokowano żądanie do zasobu innego pochodzenia: zasady „Same Origin Policy” nie pozwalają wczytywać zdalnych zasobów z „https://sprawdz-status-vat.mf.gov.pl/” (żądanie CORS OPTIONS się nie powiodło).
Zablokowano żądanie do zasobu innego pochodzenia: zasady „Same Origin Policy” nie pozwalają wczytywać zdalnych zasobów z „https://sprawdz-status-vat.mf.gov.pl/” (nieudane żądanie CORS).
O ile mi wiadomo wymagane są nagłówki co najmniej "Content-Type" i "SOAPAction" .....ale mogę się mylić. CORS mam wyłączony w firefox wtyczką " Allow CORS: Access-Control-Allow-Origin". Czy ktoś potrafi rozpoznać na czym polega problem i jak go rozwiązać ? Wysyłany komunikat na pewno jest prawidłowy, jeżeli coś miało by brakować to raczej w nagłówkach.
Pomocne linki:
Specyfikacja PDF API MF:
https://www.podatki.gov.pl/media/3275/specyfikacja-we-wy.pdf
Specyfikacja WDSL API MF:
https://sprawdz-status-vat.mf.gov.pl/?wsdl
(Podobno) działające kody w C# i VBScript:
[https://4programmers.net/Forum/Newbie/291149-program_do_sprawdzania_danych_z_bazy_Program do sprawdzania danych z bazy wwwy_www?page=3)