我在使用jQuery(3.3)ajax时遇到了一个特殊的问题。我已经把代码简化到最低限度,但仍然不明白为什么会这样。
从一个HTML表单中,我捕获“Submit”并使用ajax调用一个PHP脚本。如果我在(Win10)笔记本电脑上使用Chrome或Edge,或者在旧款三星Note I I(运行Android 4.x)上使用Chrome,或者在I phone上使用Safari,或者在其他两款Android手机上使用Chrome或Samsung stock browser,ajax调用是成功的,但是在三星A5手机上使用Chrome或Samsung stock browser失败(点击错误条款)。所有的HTML/JavaScript/PHP都在同一个服务器和同一个域上,因此没有跨域脚本。
JavaScript代码:
$(document).on("submit", function(ev) {
alert ('submit pressed');
ev.preventDefault();
var destination = encodeURI ("https://example.com/contact.php");
var datastring = "test";
$.ajax({
type: 'POST',
url: destination,
data: datastring,
success: function (result) {
alert ('success');
},
error: function(req, status, err){
alert ('error');
},
complete: function(result){
alert ('complete');
}
});
});
PHP-我已经在cotnac.PHP中删除了所有内容:
php
exit(0)
?>
如果我使用笔记本电脑、iPhone或其他3款Android手机,我会收到3个警报:
提交已按下
成功
完成
然而,我在三星A5上没有成功反而犯了错误:
提交已按下
错误
完成
顺便说一下,虽然A5电话中的调用命中了“error”子句,但确实执行了PHP代码(我让整个脚本通过写入文件、发送电子邮件通知等方式工作。。。但删除了所有要简化的内容)
有人知道为什么会发生这种情况吗?更重要的是,当代码处于这样一个基本级别时,如果不测试每一个设备,又如何确保自己的代码在任何设备上工作呢?
如果你能澄清这一点,并指出我在代码、设置或理解中缺少的东西,请提前感谢。