Php 阿贾克斯·唐';我再也不能在iphone上工作了

Php 阿贾克斯·唐';我再也不能在iphone上工作了,php,iphone,ajax,Php,Iphone,Ajax,我使用一个表单,使用php和ajax将数据插入mysql数据库。 它在台式机和移动设备上都能正常工作 现在,当插入数据时,仅来自IPHONE(在IPHONE 6s和IPHONE x上测试,均来自Safari和Chrome),该过程不起作用,并报告400或0错误 来自台式机和设备,而不是苹果的一切。 代码如下: <script type="text/javascript"> $.ajaxSetup({ beforeSend: function(xhr) {

我使用一个表单,使用php和ajax将数据插入mysql数据库。 它在台式机和移动设备上都能正常工作

现在,当插入数据时,仅来自IPHONE(在IPHONE 6s和IPHONE x上测试,均来自Safari和Chrome),该过程不起作用,并报告400或0错误

来自台式机和设备,而不是苹果的一切。

代码如下:

<script  type="text/javascript">
$.ajaxSetup({
            beforeSend: function(xhr) {
                xhr.setRequestHeader('HTTP_X_REQUESTED_WITH_AJAX', 'true');
            }
        });
</script>       
<script type="text/javascript">
    $(document).on("submit", "form", function(event){

        event.preventDefault();
        $('#ShowData').html('<img src="img/loader.gif" height="16" width="16"/>');

        $.ajax({
            url: 'ins_ok.php',
            type: 'POST',
            data: new FormData(this),
            processData: false,
            contentType: false,
            success: function (data, status)
            { 
                $('#ShowData').html(data);
                $('#Ins')[0].reset();
                $('#Data').datepicker('update', '');

            },
            error: function (xhr, desc, err)
            {
                alert('Dati al momento non disponibili. Riprovare più tardi.'); 
                console.warn(xhr.responseText);
                alert(xhr.status);
                alert(err);
            }
        });        
    });
</script>

$.ajaxSetup({
发送前:函数(xhr){
setRequestHeader('HTTP_X_REQUESTED_WITH_AJAX','true');
}
});
$(文档)。关于(“提交”、“表格”、功能(事件){
event.preventDefault();
$('#ShowData').html('');
$.ajax({
url:'ins_ok.php',
键入:“POST”,
数据:新表单数据(本),
processData:false,
contentType:false,
成功:功能(数据、状态)
{ 
$('#ShowData').html(数据);
$('#Ins')[0].reset();
$(“#数据”).datepicker('update','');
},
错误:函数(xhr、desc、err)
{
警报('Dati al momento non disponibili.Riprovare piùtardi');
console.warn(xhr.responseText);
警报(xhr.状态);
警惕(err);
}
});        
});

随着新的iOS 11更新,formData()对象出现问题。我在尝试提交带有图像选项的表单时遇到了同样的问题,如果用户没有包含图像,则会失败

现在,我猜,当iOS使用formData()对象时,如果图像输入值为空,它只会尝试发送一个空对象,这对于JSON是非法的。我最终创建了一个讨厌的函数,它说:

if (image input is null) {
    disable the image input;
}
然后在回调完成后,我不得不再次“重新启用”图像输入功能。我花了几个小时寻找一个解决方案,但它确实很新,因为iOS 11太新了

以下是帮助我解决这个问题的参考资料:

不幸的是,这里没有太多信息。测试它的最佳方法是在服务器端进行一些日志记录,以查看它是否到达脚本以及它在哪里中断。还可以将iPhone连接到计算机并使用调试工具。Safari和Chrome都可以在移动设备上调试各自的对应项。