Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.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
Javascript 调用MySQL存储过程的AJAX在IE中失败,但在Chrome中工作正常,调试困难_Javascript_Jquery_Mysql_Ajax_Internet Explorer - Fatal编程技术网

Javascript 调用MySQL存储过程的AJAX在IE中失败,但在Chrome中工作正常,调试困难

Javascript 调用MySQL存储过程的AJAX在IE中失败,但在Chrome中工作正常,调试困难,javascript,jquery,mysql,ajax,internet-explorer,Javascript,Jquery,Mysql,Ajax,Internet Explorer,问题背景 我正在为一个基于数据库/网络的前端开发一个订阅系统,该系统将允许用户订阅对单个事件的评论通知,以及对他们选择的状态中的所有事件的评论 我为此开发了一些表,并将它们实现到我的数据库中,还有一些存储过程,用于执行各种任务添加用户、订阅用户对单个事件的评论通知、取消订阅用户对处于选定状态的所有事件的评论通知。。。你明白了吗 无论如何,在Chrome中,一切似乎都运行良好。然而,在InternetExplorer9中,处理订阅和取消订阅状态的代码似乎并不一致,尽管在Chrome中工作得很好,我

问题背景

我正在为一个基于数据库/网络的前端开发一个订阅系统,该系统将允许用户订阅对单个事件的评论通知,以及对他们选择的状态中的所有事件的评论

我为此开发了一些表,并将它们实现到我的数据库中,还有一些存储过程,用于执行各种任务添加用户、订阅用户对单个事件的评论通知、取消订阅用户对处于选定状态的所有事件的评论通知。。。你明白了吗

无论如何,在Chrome中,一切似乎都运行良好。然而,在InternetExplorer9中,处理订阅和取消订阅状态的代码似乎并不一致,尽管在Chrome中工作得很好,我不知道为什么

细节

当用户单击“管理订阅”链接时,将出现一个弹出窗口,其中包含所覆盖区域中所有状态的查询生成列表

它包括以下脚本,该脚本将必要的信息传递给ajax本身-

<script type='text/javascript'>

        $(document).ready(function(){
            $('.checkbox').change(function(){
                var UserID = <?php echo json_encode($_POST['UserID']); ?>; 
                var State = $(this).val(); 
                var Subscribed = $(this).prop("checked"); 
                console.log($(this).val() + " - " + Subscribed);

                $.ajax(
                {
                    dataType: "html", 
                    url: <?php echo "'" . $root . "updatesubscriptions.php" . "',"; ?> 
                    type: "POST",
                    data: 
                    {
                        UserID: UserID,
                        State: State,
                        Subscribed: Subscribed
                    }, 
                    complete: function(result)
                    {

                    }
                });
            });
        }); 

        function closeWindow() 
        {
            close(); 
        }

</script>
<?php 

session_start(); 

header("Content-type: text/plain");
$connection = new mysqli('localhost', 'user', 'password', "database");

if ($_POST['Subscribed'] == "false")
{
    $connection->query("CALL User_UnsubscribeFromState('" . $_POST['UserID'] . "', '" . $_POST['State'] . "');");
    $connection->next_result(); 
}
else 
{
    $connection->query("CALL User_SubscribeToState('" . $_POST['UserID'] . "', '" . $_POST['State'] . "');");
    $connection->next_result();
}



?>
而ajax本身-

<script type='text/javascript'>

        $(document).ready(function(){
            $('.checkbox').change(function(){
                var UserID = <?php echo json_encode($_POST['UserID']); ?>; 
                var State = $(this).val(); 
                var Subscribed = $(this).prop("checked"); 
                console.log($(this).val() + " - " + Subscribed);

                $.ajax(
                {
                    dataType: "html", 
                    url: <?php echo "'" . $root . "updatesubscriptions.php" . "',"; ?> 
                    type: "POST",
                    data: 
                    {
                        UserID: UserID,
                        State: State,
                        Subscribed: Subscribed
                    }, 
                    complete: function(result)
                    {

                    }
                });
            });
        }); 

        function closeWindow() 
        {
            close(); 
        }

</script>
<?php 

session_start(); 

header("Content-type: text/plain");
$connection = new mysqli('localhost', 'user', 'password', "database");

if ($_POST['Subscribed'] == "false")
{
    $connection->query("CALL User_UnsubscribeFromState('" . $_POST['UserID'] . "', '" . $_POST['State'] . "');");
    $connection->next_result(); 
}
else 
{
    $connection->query("CALL User_SubscribeToState('" . $_POST['UserID'] . "', '" . $_POST['State'] . "');");
    $connection->next_result();
}



?>
迄今为止试图找到解决办法

老实说,到目前为止,我还没能采取很多措施。我不知道它是如何在谷歌Chrome中如此一致地工作,而在Internet Explorer中却不工作。我尝试了console.log-in-complete:functionresult来调试它,它在Google Chrome中工作,但在Internet Explorer中似乎不工作。我不知道接下来该怎么办

我看到了在InternetExplorer中讨论的问题,但是它不是跨域的,还有其他ajax请求,例如添加注释,这些请求可以正常工作


您是否在浏览器控制台中查看了请求/响应?你在IE中看到什么不寻常的地方了吗?试着评论一下console.log。。。我发现我真的不喜欢那样。从技术上讲,在用户按下F12并打开它之前,没有控制台;在此之前,代码会出错并停止。Chrome中的控制台显示XHR已完成加载:POST。。。接着是更多的信息,但IE中的控制台似乎没有显示类似的内容。啊哈!谢谢你,rfornal-看起来错误确实是IE对console.log发出嘶嘶声-太棒了我不确定这里的礼貌是什么-我想结束这个问题,以避免人们认为它是未解决的,但我不想为rfornal的解决方案承担责任-我该怎么办?非常感谢。