我被要求使用xmlhttpRequest使用xml有效负载从站点检索数据。 给定XML:
<?xml version="1.0" encoding="UTF-8"?>
<TPRequest>
<authentication>XXXXXXXXXX</authentication>
<startSession>
<attributes>
<attribute>
<name>CLIENT IP</name>
<value>184.152.103.111</value>
</attribute>
</attributes>
</startSession>
</TPRequest>
所以我建立了这样的东西,但没有太多运气。 它是第三方(供应商)服务器。 startSession id是第一步。 获得后,我就可以下载其他数据了。
<!DOCTYPE html>
<html lang="en">
<head><title>test handle response</title>
</head><body>Start........<br>
<script>
var xml = "" +
"{'authentication':'XXXXXXXXXX'"+
",'startSession':"+
"{'attributes':"+
"{'attribute':"+
"{'name':'IP'"+
",'value':'184.152.103.111'}}}}";
var xmlhttp = new XMLHttpRequest();
xmlhttp.open('POST','https://www.fake.web/some_API.taf',true);
xmlhttp.setRequestHeader('Content-type', 'application/xml');
xmlhttp.setRequestHeader('Encoding','utf-8');
xmlhttp.setRequestHeader('Access-Control-Allow-Origin','*')
var xmlDoc;
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
xmlDoc = xmlhttp.responseXML;
console.log("xmlDoc: " +xmlDoc);
}
alert(xmlhttp.statusText); console.log('Function Log: readyState: '+ xmlhttp.readyState + ' status: '+ xmlhttp.status);
};
xmlhttp.send(xml);
</script>
<BR>End....
</body>
</html>
我想要获得会话ID。
<?xml version="1.0" encoding="utf-8" ?>
<TPResponse>
<callStatus>success</callStatus>
<callMessage />
<startSession>
<responseStatus>success</responseStatus>
<responseMessage />
<sessionIdentifier>12345678-1234-5678-1234-567812345678</sessionIdentifier>
</startSession>
</TPResponse>
相反,这就是我得到的:
<?xml version="1.0" encoding="utf-8" ?>
<TPResponse mode="Unknown">
<callStatus>6021</callStatus>
<callMessage>Malformed Request. The request does not have the correct structure.</callMessage>
</TPResponse>
任何人都可以提出任何建议。我对XML和有效负载都很陌生。 任何建议都会被批评。