PHP能检测到不完整的xmlhttprequest.send(data)命令吗?
Can PHP detect an incomplete xmlhttprequest.send(data) command?
我看到了由帖子数据截断引起的错误日志。在调试之后,我的猜测是问题是我们使用xmlhttprequest来执行post,而用户在发送完整的post数据之前关闭了浏览器。
下面是我们的js代码:
httpReq = new XMLHttpRequest();
httpReq.open("POST", url,false);
httpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
httpReq.send(param);
是否有一种方法来检测一个不完整的发送在PHP方面,而不是发现有缺失的post参数?(我们不能这样做,因为它们是动态的。)
2011-02-27编辑:
作为一个例子,客户端发送如下内容:
&obj1_name=Greeting&obj1_type=string&obj1_value=hello&obj1_id=34
obj1_id是一个必需的字段,以便存储关于对象的剩余详细信息。但有时我们会收到一个字符串,如:
&obj1_name=Greeting&obj1_type=string
我的目标是告诉我们需要修复的故障客户端(其中意味着发送短字符串)和过早关闭的工作客户端(其中意味着发送长字符串)之间的区别,并且我们可以将错误作为不可避免的。
您可以看一下这个函数:connection_aborted
。此方法仅在设置ignore_user_abort(true)
时有效。现在,即使用户点击了中止按钮,脚本也将继续运行。然后,您必须检查connection_aborted函数,并在必要时丢弃数据。
另一种方法是在脚本末尾保存某种标志,将数据标记为已完成处理。如果未设置该标志,则可以丢弃该数据。
我不这么认为,因为PHP是服务器端和xmlhttprequest是客户端。
我已经意识到我们只需要从客户端获得更多信息才能做到这一点。为此,我们在客户端添加了一个已知的终止值。如果服务器看到最后一个参数时没有设置,则表示提交不完整。
相关文章:
- Ember Data DS.Model's set函数不起作用
- Extending Ext.data.NodeInterface
- 如何获取$data.Entity的密钥
- jQuery可以't获取data-*属性值,返回undefined
- Query JS Ext.data.Store
- 设置'这'在React with Inverse Data Flow中
- 来自现场目的的Meteor电子邮件.send()
- Google Data API上的OOP Javascript回调方法
- 如何获取`data-listid`属性值
- JSTree's data.rslt.obj.text()返回一个文本数组,而不是所需节点的文本
- KOValidation在错误消息中获取可观察值、$index()、$data等
- ko.com在foreach$data变量上添加了write函数
- Javascript、jquery、主干网、splunk:on(“change”、{data}、handler)导致Ty
- 为什么toStaticHTML删除data-*属性
- XMLHttpRequest对象的open()和send()方法之间有什么区别
- Javascript Canvas使用getImageData(x,y,1,1).data获取颜色
- 使用send时,jquery文件上传不调整图像客户端的大小
- 访问HTML中的data-*属性并将其作为道具传递
- 访问通过XHR.onreadystatechange回调中的XHR.send(data)发送的数据
- PHP能检测到不完整的xmlhttprequest.send(data)命令吗?