【问题标题】:ajax form submit not working on iPhone Safariajax 表单提交在 iPhone Safari 上不起作用
【发布时间】:2012-11-22 11:51:37
【问题描述】:

我创建了一个允许用户选择照片的表单。选择后,表单会通过 ajax 自动提交(而不是标准提交按钮)。它适用于所有浏览器,但不适用于移动版 safari。

我的 HTML:

<form id="myForm" action="php/upload.php" method="post">
<input name="uploadedfile" type="file" id="uploadPhotoButton"/>
</form>

我的javascript:

$(':file').change(function(){
    var formData = new FormData($('form')[0]);
    $.ajax({
        url: 'php/upload.php',  //server script to process data
        type: 'POST',
        success: uploadComplete,
        // Form data
        data: formData,
        //Options to tell JQuery not to process data or worry about content-type
        cache: false,
        contentType: false,
        processData: false
    });
});

在 iPhone Safari 上,更改处理函数调用正常,但 ajax 调用失败。

有什么建议吗?

【问题讨论】:

  • 好的,事实证明对 ajax 的调用工作正常,但由于某种原因,它调用的 php 脚本在尝试上传文件时仅在 iPhone Safari 上失败:$target_path = "../uploads/"; $target_path = $target_path . basename( $_FILES['uploadedfile']['name']); if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) { } else{ } move_uploaded_file 正在返回假的。

标签: jquery iphone ajax forms safari


【解决方案1】:

所以看来,在iOS6中,safari会缓存post call...解决方法在这里:Is Safari on iOS 6 caching $.ajax results?

【讨论】:

    猜你喜欢
    • 2014-02-16
    • 2016-01-17
    • 1970-01-01
    • 2011-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-12
    相关资源
    最近更新 更多