如何使PHP功能宁静的Web服务?

时间:2018-11-16 05:30:16

标签: php ajax rest api restful-url

我是休息API的新手。我有这个下面的函数,它返回HTML数据,我希望可以从任何地方访问它。我在PHP 5.6中使用Zend,请提出您的建议。

 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错误。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

Bro,您首先需要了解rest API是什么,以及它的用途是什么。另外,MySQL不安全,您应该切换到PDO或MySQLi。

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

SIMPLE EXAMPLE WITH DEMO

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

在Restful API顶部使用此代码,以允许来自服务器外部的任何请求。

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

在此处了解有关CORS的更多信息