我有以下代码:
function add_post() {
if (document.getElementById("blogTitle").value.trim() == "") {
alert("Please Insert Blog Title");
return;
}
if(CKEDITOR.instances.editor1.getData() == "") {
alert("Please Insert Blog Details");
return;
}
var data = new FormData(document.getElementById("file_add"));
var xhr = new XMLHttpRequest();
var de=CKEDITOR.instances.editor1.getData();
xhr.open("POST", "upload.php", false)
xhr.send(data + "&de=" + de);
if (xhr.status == 200) {
alert(xhr.responseText);
if(xhr.responseText == 2) {
document.getElementById("res").innerHTML="Please Upload The File";
}
if(xhr.responseText == 1) {
document.getElementById("res").innerHTML="Blog Created";
document.getElementById("blogTitle").value="";
document.getElementById("editor1").value="";
}
}
else {
output.innerHTML += "Error " + xhr.status + " occurred uploading your file.<br />";
}
}
我在 textarea 中使用 CKEDITOR 来获取格式化文本。我使用 CKEDITOR.instances.editor1.getData()
获取文本区域值。另一方面,我使用了 FormData,因为我想使用 ajax 上传表单和文件。我尝试发送数据,但无法发送数据。我已将 textarea 值存储在 de
变量中。
最佳答案
你的 form data object不是字符串。您不能仅使用 +
将更多数据连接到其中。
替换:
xhr.send(data+"&de="+de);
与
data.append("de", de);
xhr.send(data);
关于javascript - Ajax代码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23289782/