【发布时间】:2021-09-09 22:11:51
【问题描述】:
上周我遇到了一个大问题,我似乎无法找到解决方案。
我正在尝试将一些原始 XML 发布到另一家公司为我们开发的服务器,我认为该服务器具有接收此 XML 输入的侦听器。我发布和发送信息很好,但我没有得到任何回复(就像我在高中时喜欢的每个女孩一样......)。
我从 Chrome 得到的错误是:>POST http://xx.xxx.xxx.xxx:xxxx/SLISMESSAGE net::ERR_EMPTY_RESPONSE 我也尝试过其他浏览器,但所有浏览器都一样,除了 Firefox 给我一个 CORS 错误。
当我在服务器上发布监听器时,只会说:获取请求/SLISMESSAGE。
var template = [
'<?xml version="1.0"?><request type="create-order"><PATIENT><CODE><?CODE?></CODE><DEPARTURE_DATE><?DEPARTURE_DATE?></DEPARTURE_DATE><LASTNAME><?LASTNAME?></LASTNAME><FIRSTNAME><?FIRSTNAME?></FIRSTNAME><BIRTHDAY><?BIRTHDAY?></BIRTHDAY><SEX><?SEX?></SEX><PHONE1><?PHONE1?></PHONE1><EMAIL><?EMAIL?></EMAIL><HOTEL><?HOTEL?></HOTEL><HOTELNO><?HOTELNO?></HOTELNO></PATIENT><ORDER><ORDERNO><?ORDERNO?></ORDERNO><ORDERDATE><?ORDERDATE?></ORDERDATE><ORDERTIME><?ORDERTIME?></ORDERTIME><SENDERCODE><?SENDERCODE?></SENDERCODE></ORDER><TESTS><TEST><?TEST?></TEST></TESTS></request>'
].join('\r\n');
function update() {
var len = 10;
var randomId = parseInt((Math.random() * 9 + 1) * Math.pow(10,len-1), 10);
//console.log(randomId.toString());
var variables = {
'CODE': $('input[name="wpforms[fields][25]"]').val(),//randomId.toString(),
'DEPARTURE_DATE':$('input[name="wpforms[fields][3][date]"]').val(),
'DEPARTURE_TIME':$('input[name="wpforms[fields][3][time]"]').val(),
'LASTNAME': $('input[name="wpforms[fields][6][last]"]').val(),
'FIRSTNAME': $('input[name="wpforms[fields][6][first]"]').val(),
'BIRTHDAY': $('input[name="BIRTHDAY"]').val(),
'SEX': $('input[name="wpforms[fields][9]"]').val(),
'PHONE1': $('input[name="wpforms[fields][14]"]').val(),
'EMAIL': $('input[name="wpforms[fields][15]"]').val(),
'HOTEL': $('input[name="wpforms[fields][16]"]').val(),
'HOTELNO': $('input[name="wpforms[fields][17]"]').val(),
'TEST':$('input[name="wpforms[fields][2]"]').val(),
'ORDERNO':$('input[name="wpforms[fields][25]"]').val()
};
var newXml = template.replace(/<\?(\w+)\?>/g,
function(match, name) {
return variables[name];
});
console.log(newXml);
var parsedNewXml = $.parseXML(newXml);
//console.log(parsedNewXml);
var order_num = document.getElementById("wpforms-1034-field_25")
$.ajax({
url: "http://xx.xxx.xxx.xxx:8008/SLISMESSAGE",
method: 'POST',
crossDomain: true,
cache: false,
async: true,
timeout:0,
data: newXml,
contentType: "application/xml",
dataType: "xml",
success : function(){
console.log('XML Sent');
alert("Data sent");
},
error : function (xhr, ajaxOptions, thrownError){
console.log(xhr.status);
console.log(thrownError);
console.log('HEYYYYYYYYYYYY');
alert(order_num);
}
});
问题是当我尝试从邮递员那里发布相同的 XML 时,我得到了响应。其中最奇怪的是,当我尝试使用 python 脚本发布时,我也得到了回复! ?????? 请注意,我在 JS 或 jQuery 方面不太擅长,我可能在这里确实缺少一些东西,但如果不是,那么 WTH?
我不知道该怎么办。在这一点上,我几乎要放弃了,即使将来会搞砸很多事情,但我不知道该怎么办......
Results of Python Code and JS jQuery
Python 是蓝色的 JS 是红色的
请注意,我在 JS 或 jQuery 方面不是那么擅长,我可能在这里确实缺少一些东西,但如果没有,那么 WTH?
我不知道该怎么办。在这一点上,我几乎要放弃了,即使将来会搞砸很多事情,但我不知道该怎么办......
【问题讨论】:
标签: javascript python jquery ajax xml