小编Sim*_*ran的帖子

iOS Safari无法通过AJAX发送表单数据

我正在尝试使用JavaScript通过Ajax提交表单.它适用于Browserstack中的IE,Firefox,Chrome和iOS,但它不适用于iOS模拟器或真正的iOS设备或桌面Safari.

我试过XMLHttpRequest onloadXMLHttpRequest onreadystatechange,既没有被触发.据我所知,request.open('POST', url, true);是不行的.console.log('2');永远不会被触发.

我添加了这个用于调试:

request.send(data);
console.log(request);
setTimeout(function(){ console.log(request); }, 3000);
Run Code Online (Sandbox Code Playgroud)

它们都在Safari中返回readyState:1,在其他浏览器中,第一个返回readyState:1,第二个返回readyState:4,如预期的那样.

这是我的代码简化为要点:

$('.ajax-form').submit(function(event) {
  var form = event.target;
  var data = new FormData(form);
  var request = new XMLHttpRequest();
  var method = form.getAttribute("method");
  var action = form.getAttribute("action");
  var url = window.location.href
  request.open('POST', url, true);
  request.setRequestHeader("X-Requested-With", "XMLHttpRequest");
  request.setRequestHeader("HTTP_X_REQUESTED_WITH", "XMLHttpRequest");
  request.setRequestHeader("pragma", "no-cache");
  console.log('1');
  request.onreadystatechange = function() {
    console.log('2');
    if (request.readyState === 4 && request.status === 200) …
Run Code Online (Sandbox Code Playgroud)

javascript forms ajax ios

1
推荐指数
1
解决办法
2568
查看次数

标签 统计

ajax ×1

forms ×1

ios ×1

javascript ×1