javascript发布失败其他人工作正常-与表单相关
我试图通过onsubmit发布一些从表单中提取的数据。POST失败(firebug将其显示为失败),即使标题和POST数据看起来很好。我有很多其他的帖子都很好。所使用的代码是现有代码的副本,只是做了一些更改(响应函数和调用的php函数) 我已尝试将要发送的数据减少到最低限度,但仍然失败。我还尝试将被调用的PHP函数缩减为只回显一个小字符串,实际上只是一行 我能看到的唯一区别是这个过程是从表单onsubmit调用的。下面是一些代码: 首先是表格(部分) 函数updateCase是注释掉的代码的另一个版本,它本身就是工作岗位的副本(尽管上一次使用推荐的verson只发送了一段同样失败的数据)。无论如何,这是:javascript发布失败其他人工作正常-与表单相关,javascript,php,forms,http,http-post,Javascript,Php,Forms,Http,Http Post,我试图通过onsubmit发布一些从表单中提取的数据。POST失败(firebug将其显示为失败),即使标题和POST数据看起来很好。我有很多其他的帖子都很好。所使用的代码是现有代码的副本,只是做了一些更改(响应函数和调用的php函数) 我已尝试将要发送的数据减少到最低限度,但仍然失败。我还尝试将被调用的PHP函数缩减为只回显一个小字符串,实际上只是一行 我能看到的唯一区别是这个过程是从表单onsubmit调用的。下面是一些代码: 首先是表格(部分) 函数updateCase是注释掉的代码的另一
function updateCase(caseid,pstv) {
var obj = newRequestObject();
obj.onreadystatechange = function() {
if (obj.readyState == 4) {
if (obj.status == 200) {
browseCaseReturn(htmlspecialchars_decode(obj.responseText, 'ENT_QUOTES'));
delete obj;
obj = null;
}
}
}
obj.open('POST','include/FLWG_ucase.php',true);
obj.setRequestHeader('Accept-Charset','utf-8');
obj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
obj.send(pstv);
}
我刚刚尝试从表单中删除method=“post”。这导致POST错误414URI太大(数据可能很大,因为它们是法庭案例),所以我假设它默认为get。我把它改回method=“post”和no 414
我的猜测是,可能表单正在发布,由于某种原因,我的帖子失败了,因为表单的帖子还没有被处理。如果是这样,那么我如何停止表单发布(看到的帖子说最好使用onsubmit而不是onclick)。我在这里搜索了好几篇文章,但似乎没有一篇涉及到这个问题。我很确定发送的底层数据没有问题(requestpost在相应的POST变量中显示了所有预期的数据)
如有任何帮助/建议,将不胜感激
PS这是我的第一篇文章。如果这是您的JS代码,那么您必须删除函数定义中的$
函数FLWG_editSubmit($caseid){
//生成要发布的变量
变量pstv='FLWGcaseid='+caseid;
...
}
根据评论,在检查真实数据后,答案是防止默认表单提交。根据:
onsubmit="event.preventDefault(); return FLWG_editSubmit(18)"
我刚刚看到,如果右键单击POST请求(在Firebug中),可以重新发送请求。我在一个失败的请求上尝试了这个方法,请求成功了。因此,失败的背后似乎存在着时间冲突。@JRemmenud,我已经删除了它,但仔细检查了一下,它不在那里(不确定它是如何进入的)。说我已经得到了答案(我想)。这包括
event.preventDefault()。ieonsubmit=“event.preventDefault();返回FLWG_editSubmit(18)”
。我现在只需要检查我想要的实际代码。
function updateCase(caseid,pstv) {
var obj = newRequestObject();
obj.onreadystatechange = function() {
if (obj.readyState == 4) {
if (obj.status == 200) {
browseCaseReturn(htmlspecialchars_decode(obj.responseText, 'ENT_QUOTES'));
delete obj;
obj = null;
}
}
}
obj.open('POST','include/FLWG_ucase.php',true);
obj.setRequestHeader('Accept-Charset','utf-8');
obj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
obj.send(pstv);
}
onsubmit="event.preventDefault(); return FLWG_editSubmit(18)"