我在正确设置XMLHttpRequest对象以将数据发布到服务器时遇到问题。似乎从未发布过数据(来自HTML表单),或者至少未达到 readyState == 4 && 状态。
function PostToAPI() {
var payersName = document.forms["myForm"]["payersName"].value;
var recipientPhoneNumber = document.forms["myForm"]["recipientPhoneNumber"].value;
var apiKey = document.forms["myForm"]["apiKey"].value;
var params = "payersName="+payersName+
"&recipientPhoneNumber="+recipientPhoneNumber+
"&apiKey="+apiKey;
alert(params); // Note#1
var Url = "https://api.blackShawls.af/c2b"; // Note#2
var xhr = new XMLHttpRequest();
xhr.open('POST', Url, true);
xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
xhr.onreadystatechange = processRequest;
function processRequest(e) {
if (xhr.readyState == 4 && xhr.status == 200) {
alert(xhr.responseText.headers.Host); // Note#3
}
}
xhr.send(params);
}
这表明已成功读取HTML表单中的各个字段,并且到目前为止一切正常。
(注#2)与我的代码中的一个相反,此处的 Url 值是虚拟的。
(注#3)alert(xhr.responseText.headers.Host);
似乎从未启动,这表明readyState
和status
条件从未得到满足。
还是xhr.send(params)
从未发送过?
有人可以指出我的代码在哪里出问题吗?
期待您的帮助。