首页 > 解决方案 > Jquery Ajax Post 但预期的 PHP 代码未运行

问题描述

我正在尝试在本地服务器上设置一个简单的网页。该网页有一个按钮,当在本地客户端上按下该按钮时,我希望在服务器上创建一个目录。PHP 在服务器端运行,而 jquery 在客户端运行。

我在 test.php 中的 PHP 代码:<?php mkdir('/home/pablo/test_dir', 0777, true); ?>

script.js 中的 jquery/ajax:

var toggleOutlet = function(buttonClicked) {
    $.ajax({
        url: 'test.php',
        success: function(data) {
            alert('Directory created!');
        }
    });
};
$(function() {
    $('.toggleOutlet').click(function() {
        toggleOutlet($(this));
    });
});

当我按下客户端上的按钮时,我确实得到了一个“已创建目录!” 警报,但没有在服务器上创建 test_dir。我究竟做错了什么??为了完整起见,我的 html 是:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>MyWeb</title>
  <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
</head>

<body>

  <div class="container">
    <label>Example Button</label>
    <div class="btn-group btn-group-justified" role="group" aria-label="...">
      <div class="btn-group" role="group">
        <button type="button" data-outletId="1" data-outletStatus="on" class="btn btn-default toggleOutlet">On</button>
      </div>
    </div>

  </div>
</body>
<script src="//code.jquery.com/jquery-3.2.0.min.js"></script>
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<script src="script.js"></script>
</html>

标签: javascriptphpjqueryhtml

解决方案


您好@pablo919 您需要检查目录“/home/pablo”是否具有写入权限,您可以更改代码 ajax 并添加函数错误以检查是什么。

例子:

$.ajax({
        url: 'test.php',
        success: function(data) {
            alert('Directory created!');
        },
        error: function (jqXHR, exception) {
                alert('Uncaught Error.\n' + jqXHR.responseText);
        }

    });

推荐阅读