Php 阿贾克斯·唐';我再也不能在iphone上工作了
我使用一个表单,使用php和ajax将数据插入mysql数据库。 它在台式机和移动设备上都能正常工作 现在,当插入数据时,仅来自IPHONE(在IPHONE 6s和IPHONE x上测试,均来自Safari和Chrome),该过程不起作用,并报告400或0错误 来自台式机和设备,而不是苹果的一切。 代码如下: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) {
<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都可以在移动设备上调试各自的对应项。