【问题标题】:Why is XMLHttpRequest not working in local hosted file?为什么 XMLHttpRequest 在本地托管文件中不起作用?
【发布时间】:2015-11-06 22:45:49
【问题描述】:

我是 HTML、PHP 和一般网络编程的初学者。

我的第一个项目是一个连接到 MySQL 数据库的 PHP 页面。我正在使用这个 javascript 代码将信息发送到另一个 PHP 页面:

    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>ERP</title>
    <link rel="stylesheet" href="css/bootstrap.min.css" />
    <link rel="stylesheet" href="css.css" />
    <script type="text/javascript" src="oXHR.js"></script>
    <script type="text/javascript"></script>
    <script>
        function DelRow(callback) 
        {
            alert("FIRSTALERT");
            var xhr = XMLHttpRequest();
            alert("SecondALERT");
            xhr.onreadystatechange = function() 
            {
                if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) 
                {
                    callback(xhr.responseText);
                }
            };
            var Comp = encodeURIComponent(document.getElementById("ComboBoxCompany").value);
            xhr.open("GET", "DeleteRow.php?Comp=" + Comp, true);
            xhr.send(null);
        }

        function readData(sData) 
        {
            alert(sData);
        };
    </script>
</head>

这个函数被这个坏男孩在这里调用:

<input class="btn btn-primary" type="button" value="Confirmer" name="ConfirmDel" onclick="DelRow(readData)" />

如果您查看我的 javascript 代码,我会发出 2 个警报。第一个出现了,第二个没有出现。似乎 getXMLHttpRequest 不起作用。

我正在使用谷歌浏览器。我发现一些线程说我需要执行这个命令行:

C:\Users\User>C:\Program Files (x86)\Google\Chrome\Application --允许文件 -access-from-files

但它什么也没改变。

我在黑暗中寻找一些见解。

【问题讨论】:

  • getXMLHttpRequest 在哪里定义?如果您没有收到第二个警报,则 ajax 请求与此问题无关,那时您甚至还没有发送请求。
  • 从文件系统中调用 PHP ???您需要使用本地服务器,该 php 文件不会神奇地运行。 getXMLHttpRequest 是什么?
  • @epascarello 它正在与 XAMPP 服务器一起运行。页面显示没有任何问题!在我按下帖子中描述的按钮后,实际上只是调用 getXMLHttpRequest 不起作用。
  • @Kevin B 我不知道它是在哪里定义的。我目前正在关注 W3CSchool 关于 ajax 的 PHP 教程,这就是他们展示它的方式。还有其他方法吗?
  • 教程链接,我的搜索中屏蔽了所有 w3schools 链接,所以我找不到它。

标签: javascript php ajax google-chrome


【解决方案1】:

如果您没有收到第二个警报,您几乎可以排除第二个警报之后出现的所有内容,因为它们都不会被执行。这使得问题很容易追踪,因为它必须是这一行:

var xhr = XMLHttpRequest();

您只是缺少new 关键字。

var xhr = new XMLHttpRequest();

【讨论】:

  • 再次感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-26
  • 2020-07-08
相关资源
最近更新 更多