Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 狩猎错误。Javascript ajax json对象-无法获取属性。对象可能不再存在_Php_Json_Ajax_Object_Safari - Fatal编程技术网

Php 狩猎错误。Javascript ajax json对象-无法获取属性。对象可能不再存在

Php 狩猎错误。Javascript ajax json对象-无法获取属性。对象可能不再存在,php,json,ajax,object,safari,Php,Json,Ajax,Object,Safari,我有一个对PHP后端的Ajax调用。它在chrome中运行良好,但当我在safari中运行它时,我得到一个“无法获取属性,对象可能不再存在””错误,代码中的这一行- 数据类型:“JSON” 下面是函数。可能很简单。实际上,我在网上找到了这段代码,并重新调整了它的用途。不是一个真正的开发人员,只是敷衍了事:) 任何提示都将不胜感激!正如我所说,Chrome中没有错误 谢谢 戴夫 奇怪的是,这(另一页)很好用 function insertAreaData() { var a

我有一个对PHP后端的Ajax调用。它在chrome中运行良好,但当我在safari中运行它时,我得到一个“无法获取属性,对象可能不再存在””错误,代码中的这一行-

数据类型:“JSON”

下面是函数。可能很简单。实际上,我在网上找到了这段代码,并重新调整了它的用途。不是一个真正的开发人员,只是敷衍了事:)

任何提示都将不胜感激!正如我所说,Chrome中没有错误

谢谢 戴夫

奇怪的是,这(另一页)很好用

function insertAreaData() {
            var areauid=$("#areauid").val();
            var areaName=$("#areaName").val();
            var areaDesc=$("#areaDesc").val();

            // AJAX code to send data to php file.
            $.ajax({
                type: "POST",
                url: "insert-areadata.php",
                data: {areauid:areauid,areaName:areaName,areaDesc:areaDesc},
                dataType: "JSON",
                success: function(data) {
                    closeitem(areaarea);
                    $("#AreaSaved").show();
                    $('form[name=AreaForm]').get(0).reset();
                    setTimeout(function() { $("#AreaSaved").hide(); }, 2000,);
                    window.location.replace("lessons.php");
                },
                error: function(err) {
                    console.log(err);
                }

            });

        }

编辑:我现在也在internet explorer中进行了测试,遇到了同样的问题。

结果表明,表单发布的页面正在重新加载,出于某种原因,Google Chrome为我处理了这个问题,而Safari和IE则没有

我在表单中添加了以下onsubmit注释:

当我单击submit按钮并运行javascript时,它阻止了它的执行

为完整起见,请提交:


因此,正如预期的那样,最终一件简单的事情…

是不是误入的
q
a打字错误?设置超时中的额外
?这就是你收到的错误信息吗?“无法获取属性,对象可能不再存在”?这是真的还是你在重写它?嗨@JoeFrambach,是的,
q
是一个拼写错误,很抱歉!至于超时中的
,这是故意的,但并不意味着它是正确的:)是的,Safari控制台中的措辞是-Object无法获取属性。对象可能不再存在。错误项目。php:69第69行是
数据类型:“JSON”,
行。问题是否会出现在发布到的php后端页面中?一时兴起,您是否可以注释掉
closeitem(projectarea)行并查看错误是否仍然存在?这个变量不在您提供的范围内,Safari有时会在异步情况下抱怨它知道的对象被从它下面拉出来。通常的解决方案是在iife中封装成功回调,并将
projectarea
作为参数传递。如果这确实是问题所在,我会在完整的答案中写下这一点。或者,用
函数({console.log('this works!');}
替换整个成功回调,只是为了减少可能的问题,尝试三角化根本问题。
function insertAreaData() {
            var areauid=$("#areauid").val();
            var areaName=$("#areaName").val();
            var areaDesc=$("#areaDesc").val();

            // AJAX code to send data to php file.
            $.ajax({
                type: "POST",
                url: "insert-areadata.php",
                data: {areauid:areauid,areaName:areaName,areaDesc:areaDesc},
                dataType: "JSON",
                success: function(data) {
                    closeitem(areaarea);
                    $("#AreaSaved").show();
                    $('form[name=AreaForm]').get(0).reset();
                    setTimeout(function() { $("#AreaSaved").hide(); }, 2000,);
                    window.location.replace("lessons.php");
                },
                error: function(err) {
                    console.log(err);
                }

            });

        }