Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使PHP函数成为RESTfulWeb服务?_Php_Ajax_Rest_Api_Restful Url - Fatal编程技术网

如何使PHP函数成为RESTfulWeb服务?

如何使PHP函数成为RESTfulWeb服务?,php,ajax,rest,api,restful-url,Php,Ajax,Rest,Api,Restful Url,我不熟悉RESTAPI。我有下面这个函数,它返回HTML数据,我想从任何地方访问它。我正在使用Zend和PHP5.6,请给出您的建议 fheader('Access-Control-Allow-Origin: *'); header('Access-Control-Allow-Methods: GET, POST'); header("Access-Control-Allow-Headers: X-Requested-With"); if ($_SERVER['REQUEST_METHO

我不熟悉RESTAPI。我有下面这个函数,它返回HTML数据,我想从任何地方访问它。我正在使用Zend和PHP5.6,请给出您的建议

 fheader('Access-Control-Allow-Origin: *');

header('Access-Control-Allow-Methods: GET, POST');

header("Access-Control-Allow-Headers: X-Requested-With");

if ($_SERVER['REQUEST_METHOD'] == "GET") {
    $db = MysqliDb::getInstance();
    //$sq = "ct-head";
    $db->where("slug","ct-head");
    $db->orderBy('version', 'desc');
    $template = $db->getOne("tbl_templates");
    $result = $template['modhtml'];

    echo $result;

} else if ($_SERVER['REQUEST_METHOD'] == "POST") {
        echo "POST";
} else {
        http_response_code(405);
}
我写过类似的东西,但如果我从其他系统访问它,它将返回CORS错误


任何帮助都将不胜感激。

兄弟,您需要首先了解什么是rest API,以及您需要它的目的。此外,MySQL是不安全的,您应该切换到PDO或MySQLi

RESTAPI并没有什么特别之处,它只是一个AJAX请求。我们将JSON数据发送到RESTAPI,在API(PHP)方面,我们对该数据设置了一些条件,以使API正常工作。如果您想从任何地方(不同的服务器、邮递员等)发送JSON数据,必须使用CORS(跨源资源共享)。这样,您的服务器将允许您从任何地方接受数据。您还必须创建和验证密钥(访问令牌)。因此,您只能从具有有效访问令牌的受信任站点接收数据

我在回答中说,您需要跨来源资源共享。为了告诉服务器这一点,我们使用一些代码让它知道,我们允许从我们自己的服务器之外的请求执行CRUD操作。有时,出于安全目的,我们只为自己制作restful API,任何服务器都不允许任何人访问我们的站点

在restful API的顶部使用此代码,以允许从服务器之外的任何位置发出请求

header("Access-Control-Allow-Origin: *");

阅读有关CORS的更多信息这里

任何人都可以给我一个php中rest api的示例,以及我应该从哪里开始。rest与功能无关,只与如何将请求映射到功能有关。建议寻找低开销的实现。RESTAPI意味着它没有状态。在您的情况下,您需要从任何地方访问函数,该函数可能返回模板或json数据。您应该在url ie中使用它,通过调用该url,您的服务器必须执行此函数并返回结果。例如,如果您正在调用www.mydomain.com/api/my_函数,则需要获得结果。以这种方式进行配置。别忘了在这两者之间实现任何类型的身份验证机制。通过这个例子,我也很好地解释了我的问题。如果我从其他系统访问它,那就是一个名为CORS的错误。只需将它添加到API(PHP)的顶部即可。标题(“访问控制允许原点:”;好的,我如何使用POST方法以及如何从jquery调用。现在我使用的是GET方法。如果您有问题,请在新问题中更新您的API和jquery。如果您从ajax发送post请求,那么只需在PHP上使用$\u GET['post']即可接收数据。如果您使用的是AJAX的GET方法,那么您需要在API上使用$\u GET。如果您的代码有问题,请接受这个答案并提出一个新问题。谢谢