如何修复babel-polyfill错误?无法在我的代码

时间:2016-11-06 15:57:50

标签: javascript php ajax twitter-bootstrap frontend

我有一个带有按钮和文本框的简单页面,我在其中输入一个sql查询,它将数据发送到一个php文件,该文件在页面上返回查询结果。

以下是我的代码:

   <div class="row larger-font">

   <div class="container">
     <p><strong> Some text goes here </strong></p>
   <div class="row">

   <div class="col-md-6">
            <div id="simpleButton">
                            <button  type="button"   class="btn btn-primary">Execute!</button>
                    </div>
            </div>
            <div class="col-md-6">
                    <div class="form-group">
                            <input type="text" class="form-control" id="sampleInput" name="sql">
                    </div>
            </div>
            <div id="result">  </div>
    </div>
    </div>
    </div>
    </div>
          <script src="//code.jquery.com/jquery-1.12.0.min.js"></script>
          <script>
          $('#simpleButton').click(function(e) {
          var val1 = $('#sampleInput').val();
          $.ajax({
          type: 'POST',
          url: 'mahsql',
          data: { sampleInput: val1 },
          success: function(response) {
          $('#result').html(response);
          }
          });
          });
          </script>

奇怪的是,我在页面上得到了我的结果,没问题;但是,我得到这个弹出错误,说只允许一个babel-polyfill实例。我不明白这。我没有使用任何巴贝尔。有没有办法从这里压制这个错误?我很困惑,因为我可以看到结果,但我仍然得到这个恼人的弹出错误。 感谢任何帮助。谢谢。

更新:这里是mahsql.php:

<?php
$conn = oci_connect('username', 'password', 'hostname/db_svc');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
$query = $_POST['sampleInput'];
$stid = oci_parse($conn, $query);
oci_execute($stid);

echo "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
    echo "<tr>\n";
    foreach ($row as $item) {
        echo "    <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES)     : "&nbsp;") . "</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";
?>

在评论之后,我推动了F12在Chrome上查看了Chrome标签页,我在我的.php文件下看到了这个带有html的javascript代码,名为newtestingm.php。

这是引发错误的额外代码:

<div id="preloader"></div><script type="text/javascript">
var isLoggedIn=false;
var preload=[];
var isAdmin=false;

</script><script type="text/javascript">

</script><script>
    (function(i,s,o,g,r,a,m)    {i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
    (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new     Date();a=s.createElement(o),
    m=s.getElementsByTagName(o)    [0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

ga('create', 'UA-53997625-1', 'auto');
ga('send', 'pageview');


</script>
<script src="http://servername:1338/webpack-dev-server.js"></script><script    crossorigin="anonymous" src="http://servername:1338/all.8a98aeb6b75576ce1df6.js">    </script><script crossorigin="anonymous"     src="http://servername:1338/newtestingm.8a98aeb6b75576ce1df6.js"></script></body>    </html>

这是什么???它不属于我的php文件。

1 个答案:

答案 0 :(得分:1)

mahsql处的资源返回带有嵌入式脚本标记的html。您无条件地将此html注入您的页面并执行它。这是非常不明智的。

由于您未包含所有html,因此很难确定错误的确切原因。基本上,一次只打算执行一次的脚本正在执行多次。

根据更新和评论,您的服务器似乎附加了包含Google Analytics的标记,请求Webpack开发服务器的脚本,以及设置一些全局变量。 Webpack很可能是请求Babel的。

我的建议是退一步检查你正在使用的所有工具,因为这不应该在你不知情的情况下发生。也许您正在使用服务器和客户端框架,入门工具包和生成您不知道的代码的模板的组合。如果没有对您的完整堆栈的深入了解,这很难预测和推理。

我不熟悉您正在使用的框架,我很少编写PHP,但一般的问题是您不了解正在执行的代码的广度。显然有一个相当复杂的堆栈正在做出假设。例如,它似乎假设您有一个Webpack包,其名称对应于从同一位置提供的html页面。如果不是这样,您将收到错误。但这只是大量假设的一个例子。