【问题标题】:How to send XMLHttpRequest to specific php function?如何将 XMLHttpRequest 发送到特定的 php 函数?
【发布时间】:2014-02-06 15:21:53
【问题描述】:

我正在尝试使用 ajax 上传图片。我遇到了一些问题。我在 func-ajax.php 中有两个函数:函数 doSth(){} 和函数 doSthElse(){}。我想定位 doSth() 函数 这是我的 javascript 方面:

var xhr = new XMLHttpRequest();
xhr.open("POST", 'func-ajax.php', true);
xhr.setRequestHeader("X_FILENAME", file.name);                  
xhr.send(file);

如何指定 whick 函数来发送请求?

【问题讨论】:

  • 我强烈建议实施下面发布的任意数量的解决方案,这样我就可以通过简单地篡改您的 javascript 在后端实现不同的功能。谢谢

标签: javascript php ajax xml


【解决方案1】:

您无法从 func-ajax.php 文件运行特定函数。

你应该做的是创建类似ajax-controller.php的东西,包含

    $functionName = $_POST["func"]; // func parameter should be sent in AJAX, determines which function to run

    if (function_exists($functionName)) { // check if function exists
         $functionName(); // run function
    }

并将所有来自JS的请求发送到这个文件xhr.open("POST", 'ajax-controller.php', true);

希望你能明白。

【讨论】:

    【解决方案2】:

    您希望随请求一起发送 GET/POST 参数,并在 PHP 脚本中捕获这些参数。

    【讨论】:

      【解决方案3】:

      您不能向函数发送 HTTP 请求。

      您请求资源。该请求可以包含 POST 数据,也可以包含 HTTP 标头。

      然后服务器决定如何响应请求。它可能会选择运行 PHP 程序。

      由 PHP 程序查看请求的资源/POST 数据/标头并确定要运行的函数。

      【讨论】:

        【解决方案4】:

        您可以在发送的数据中添加一个参数,并在您手动调用该函数的某种 if 块中检查该参数。你也可以引入一个像 Slim 这样的框架,来创建一个你可以点击的 REST-api 点。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-11-19
          • 2012-03-19
          • 2012-06-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多