2013-02-26 45 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。只有现代浏览器才支持它。