如何将XMLHttpRequest发送到特定的PHP函数?

时间:2014-02-06 15:21:54

标签: javascript php ajax xml

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

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

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

4 个答案:

答案 0 :(得分:2)

您无法从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);

希望你明白这一点。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

您无法向功能发送HTTP请求。

您提出资源请求。该请求可以包括POST数据,它可以包含HTTP头。

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

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

答案 3 :(得分:0)

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