我正在尝试创建一个函数来处理我的 AJAX 帖子。我能够让它发送数据,但在从请求中接收数据时遇到问题。
本质上,我有一个ajaxPost(paramArray, target)
名为target
.
我认为问题来自ajaxReq.onreadystatechange
,我认为它正在跳过它并结束脚本。
我不知道我是否正确解释了我的意思,这是脚本:
function ajaxPost(paramArray, target){
var param = '';
var key;
for (key in paramArray){
param = param + key + '=' + paramArray[key] + '&';
}
param = param.substring(0, param.length - 1);
var ajaxReq = new XMLHttpRequest();
ajaxReq.onreadystatechange = function(){
if(ajaxReq.readyState == 4 && ajaxReq.status == 200){
return ajaxReq.responseText;
document.write('Test?');
}
}
ajaxReq.open('POST', target, true);
ajaxReq.setRequestHeader('Content-type', "application/x-www-form-urlencoded");
ajaxReq.send(param);
}
这是“完成工作”的函数,下面是调用上述函数的函数示例:
function submitPost(form){
var title = form.title.value;
var text = form.textBody.value;
var name = form.nameOfPoster.value;
var paramArray = new Array();
paramArray['title'] = title;
paramArray['text'] = text;
paramArray['name'] = name;
if (ajaxPost(paramArray, 'post.php')){
location.reload(true);
}
}
这实际上将参数发送到ajaxPost()
,如果它返回某些内容,它会重新加载页面。
正如我所说,我认为它忽略了本文开头提到的一部分。我只是想知道是否可以在收到该数据之前暂停该功能。
请不要告诉我使用 jQuery,我正在尝试使用 javascript :)
谢谢。如果您有其他提示,请务必包含它们。