2013-02-26 51 views
0

我想一些XML數據發送到服務器,然後在屏幕上打印我收到的XML。簡單的XMLHttpRequest和打印XML數據

我至今是:

<script type="text/javascript"> 
function authIHC() { 
var req = new XMLHttpRequest(); 
var xml_request; 
var username = "user"; 
var password = "password"; 

xml_request = "<?xml version='1.0' encoding='UTF-8'?>\n"; 
xml_request = xml_request + "<SOAP-ENV:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">\n"; 
xml_request = xml_request + "<SOAP-ENV:Body>\n"; 
xml_request = xml_request + "<ns1:authenticate1 xmlns:ns1=\"utcs\" xsi:type=\"ns1:WSAuthenticationData\">\n"; 
xml_request = xml_request + "<ns1:password xsi:type=\"xsd:string\">" + password + "</ns1:password>\n"; 
xml_request = xml_request + "<ns1:username xsi:type=\"xsd:string\">" + username + "</ns1:username>\n"; 
xml_request = xml_request + "<ns1:application xsi:type=\"xsd:string\">treeview</ns1:application>\n"; 
xml_request = xml_request + "</ns1:authenticate1>\n"; 
xml_request = xml_request + "</SOAP-ENV:Body>\n"; 
xml_request = xml_request + "</SOAP-ENV:Envelope>\n"; 

req.onreadystatechange=function() 
    { 
    if (req.readyState==4) 
    { 
    alert(req.statusText); 
    } 
    else {alert ("nothing");} 
    } 

req.open('PUT', 'https://10.0.0.254/ws/AuthenticationService', true); 
req.setRequestHeader('Content-Type', 'text/xml'); 
req.send(xml_request); 

} 
</script> 

的問題是,我從來沒有得到任何東西,它總是在一個盒子打印:沒有。

你能幫忙嗎?

+0

你看着與像[提琴手]工具(http://www.fiddler2.com/fiddler2/)的反應如何? – epascarello 2013-02-26 18:02:18

+0

會嘗試小提琴手,但是我的代碼是否正確?我可以這樣發佈嗎? – user2040597 2013-02-26 21:01:11

+0

我已經嘗試過提琴手,即使我將PUT更改爲POST(對不起,這是一個錯誤類型),在提琴手中,我看到OPTIONS而不是正在發送的POST。 – user2040597 2013-02-26 21:11:18

回答

0

發佈到不同的服務器意味着你打同源策略。查看HTTP響應代碼,你會看到它是不是400

如果你控制的其他領域,你可以看看讓CORs。只有現代瀏覽器才支持它。