我对我的代码中的错误感到有点困惑
function submitArticle() {
var postTitle = encodeURIComponent(document.getElementById('postTitle').value);
var postDes = encodeURIComponent(document.getElementById('postDes').value);
var postCont = encodeURIComponent(document.getElementById('postCont').value);
var data = "postTitle=" + postTitle + "&postDes=" + postDes + "&postCont=" + postDes;
var getXML = function () {
try {
xhr = new XMLHttpRequest();
}
catch(e) {
try {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e) {
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e) {
alert("Your Browser is not Supported");
}
}
}
}
open('POST', 'http://localhost/blog/engine/engine.php', true);
setRequestHeader("Content-type", "application/x-www-form-urlencoded");
send(data);
getXML.onreadystatechange = function() {
if(this.readyState === 4) {
if(this.status ===200) {
alert(this.responseText);
}
else {
alert("status" + this.status);
}
}
else {
alert("readyState" + this.readyState);
}
}
getXML();
return true;
}
我正在使用onclick事件。我检查了URL并确保在输入变量值时没有犯任何错误。我得到" setRequestHeader没有定义"错误以及显示链接的新窗口" localhost / blog / app / POST"
我尽可能多地抬头看,我不知道下一步该做什么 也。编写代码必须有一个比我对getXML()函数更好的方法。
答案 0 :(得分:4)
setRequestHeader
是XmlHttpRequest对象的方法。 Read about it here.
您需要xhr.setRequestHeader(...)
。
答案 1 :(得分:-1)
我很抱歉我的愚蠢问题。我没有意识到的是,XMLHttpRequest有许多方法,其中open,send和setRequestHeader是@Chris Jones所说的一部分。因此,当我使用这些方法时,我需要使用xhr。“ _ ”。
这是我的更新有效。
function submitArticle() {
xhr = new ajaxValue();
function ajaxValue() {
try {
xhr = new XMLHttpRequest();
}
catch(e) {
try {
var xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e) {
try {
var xhr = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e) {
alert("Your Browser is not Supported");
}
}
}
return xhr;
}
var postTitle = document.getElementById('postTitle').value;
var postDes = document.getElementById('postDes').value;
var postCont = document.getElementById('postCont').value;
var data = "postTitle=" + postTitle + "&postDes=" + postDes + "&postCont=" + postDes;
var url = '../engine/engine.php';
xhr.open('POST', url , true);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.send(data);
xhr.onreadystatechange = function() {
if(this.readyState === 4 ) {
if (this.status ===200) {
alert(this.responseText);
}
}
else {
alert("status " + this.status);
alert("readyState " + this.readyState);
}
}
return false;
}