【问题标题】:path as parameter - ajax call路径作为参数 - ajax 调用
【发布时间】:2019-03-13 22:25:17
【问题描述】:
<?php
    if (defined('STDIN')) {
        $path= $argv[1];

    } else { 
        $path = $_GET['path'];

    }
    if( isset($path) && ($path!==null) ) {
        $local='/home/www/site/';
        $fullpath = $local . $path;
        var_dump(is_dir($fullpath));
    }
?>

如果我从控制台调用它,它会按预期工作:bool(true)。

通过ajax调用,失败:

$.ajax({
    url: '../inc/is_dir.php',
    data: { path: "a/b" },
    dataType: 'text',
    success: function (data) {
        alert(data);
    }
});

【问题讨论】:

  • 确保你的 ajax url 正确?
  • 您是否尝试过先调试自己?你转储var_dump($_GET);了吗?
  • 是的,我有。我尝试了获取和发布方法。看起来不错,但两种方法都失败了。

标签: javascript php parameter-passing


【解决方案1】:

由于您使用的是相对路径,请检查network tab in the devtools 实际指向的../inc/is_dir.php。在那里您还可以看到您遇到的错误类型(例如 404、500 等)

考虑使用绝对路径,例如/inc/is_dir.php。如果您在不同的页面上使用脚本,您不希望您的 ajax 调用中断。

【讨论】:

  • 我没有收到任何错误消息。如果我尝试使用 ajax,我会得到 bool(false)。
  • 我明白了。尝试将contentType : "application/json" 添加到您的ajax 请求中,并用JSON.stringify({ path: "a/b" }) 包装{ path: "a/b" }
  • 当jquery传递参数的对象时,为什么要将字符串化的参数封装在一个对象中,然后通过ajax发送?我试过了,但没有用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-08
  • 2016-05-13
  • 2012-05-29
  • 2015-09-01
  • 1970-01-01
  • 2010-09-24
  • 2021-08-12
相关资源
最近更新 更多