微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

AJAX 请求适用于桌面 (chrome),在 IOS (chrome/safari) 上出现 409 错误

如何解决AJAX 请求适用于桌面 (chrome),在 IOS (chrome/safari) 上出现 409 错误

我正在做一个 html 表单提交的简单拦截,并使用 AJAX 手动发布结果。这在桌面上运行良好,但在 IOS 上失败并出现 409 冲突错误。我的理解是这表明多个 POST 正在同时发送并且相互冲突。

我已经广泛搜索解决方案,并且我已经采取了所有必要的措施来防止重复提交,据我所知,它们不应该发生。但是我仍然收到此错误。我已经尝试了以下

  • e.preventDefault() 在提交处理程序中
  • e.stopImmediatePropagation() 在提交处理程序中
  • 在提交处理程序中返回 false
  • 向表单元素添加额外的 onsubmit="return false"
  • cache:false 在 ajax 选项中并添加 ?x=[randomnumber] 到 url,以确保我得到新的结果
  • async:true 在 ajax 选项中
  • crossDomain:false 在 ajax 选项中
  • 使用调试日志确认我的提交处理程序只发送了一个表单,并且 ajax调用
  • 同时使用绝对和相对 URL

这是我的代码要点

<form id="myform" onsubmit="return false">
    ... form fields 
    <input type="submit"value="Submit"> 
</form>
var form = $('#myform')
form.on('submit',function(e) {
    e.preventDefault()
    e.stopImmediatePropagation()
    var data = $(this).serialize()
    var url = `PHP/contact-us.PHP?nocache=${Date.Now()}`

    $.ajax({
        url: url,data: data,cache: false,async:true,crossDomain:false,dataType:'text',type: 'POST',success: function(data){
            alert(data);
        },error: function(xhrRequest,status,error) {
            alert(`There was an error submitting your request (${xhrRequest['status']}).`)
        }
    });
    return false
})

我在桌面 (chrome) 上收到成功警报,在移动设备 (chrome/safari) 上收到“提交您的请求时出错 (409)”。为什么会发生这种情况?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。