为什么这个 $.post() 在 iOS 上不起作用?
why doesn't this $.post() work on iOS?
为什么以下表格不适用于 iOS?
它适用于 Chrome / Android / Windows / Mac 但不适用于 Safari / Chrome iOS。我已将问题缩小到 jquery post 函数。
它通过了 "e.preventDefault()" 但从未 post 发送数据(我有一个 php 脚本确认 post 从未到达服务器)。并且带有 alert() 的回调不会触发。
<form method="post" action="" id="wl_form">
<div class="form-group">
<label for="first">First Name *</label>
<input type="text" name="first" class="form-control" id="first">
</div>
<button name="submit" type="submit" id="submit" class="btn btn-default">Submit</button>
</form>
var form = document.getElementsByTagName('form')[0];
form.addEventListener('submit', doSubmit);
function doSubmit (e) {
e.preventDefault();
alert("ive made it this far");
$.post("record.php",
{
first: $("#first").val()
},
function(data){
console.log("submitting");
alert("Success: " + data);
});
window.location.href = "nextpage.html";
}
您似乎在 post ajax 调用后立即执行重定向。如果您执行页面传输的速度足够快,ajax 请求将被取消,您的后端可能永远看不到它。
正如您从评论中发现的那样,将重定向移动到成功回调中应该允许您完全执行 ajax 请求,然后执行重定向。
为什么以下表格不适用于 iOS?
它适用于 Chrome / Android / Windows / Mac 但不适用于 Safari / Chrome iOS。我已将问题缩小到 jquery post 函数。
它通过了 "e.preventDefault()" 但从未 post 发送数据(我有一个 php 脚本确认 post 从未到达服务器)。并且带有 alert() 的回调不会触发。
<form method="post" action="" id="wl_form">
<div class="form-group">
<label for="first">First Name *</label>
<input type="text" name="first" class="form-control" id="first">
</div>
<button name="submit" type="submit" id="submit" class="btn btn-default">Submit</button>
</form>
var form = document.getElementsByTagName('form')[0];
form.addEventListener('submit', doSubmit);
function doSubmit (e) {
e.preventDefault();
alert("ive made it this far");
$.post("record.php",
{
first: $("#first").val()
},
function(data){
console.log("submitting");
alert("Success: " + data);
});
window.location.href = "nextpage.html";
}
您似乎在 post ajax 调用后立即执行重定向。如果您执行页面传输的速度足够快,ajax 请求将被取消,您的后端可能永远看不到它。
正如您从评论中发现的那样,将重定向移动到成功回调中应该允许您完全执行 ajax 请求,然后执行重定向。