Slim Framework,Rest文件夹中的Api路径结构需要为每个API调用选项

时间:2015-04-24 16:34:42

标签: cors slim

我已经开发了一个在文件夹上运行路由的Api而不是所有路由的单个文件(就像有些人一样),在修改Api结构之前我需要找出为什么每次调用不同的API时我都需要调用Options,我已经理解了CORS概念,它正在我的服务器/客户端工作但是不明白为什么调用选项,它是正常的还是我必须在一个文件中映射所有路由?如果是这种情况会影响所有路由在一次调用中映射,还是在不同文件夹上分离apis的更好方法?

这就是我在苗条方面做的方式,所有对api“用户”的调用都包含在“document_root - > v2 - > users - > index.php”中,在index.php里面我调用了SlimFramework引擎以及Api这样称呼:

users api called at: api.host.com/v2/users/
GET host.com/v2/users/ = document_root -> v2-> users -> read.php
POST host.com/v2/users/ = document_root -> v2-> users -> add.php
PUT host.com/v2/users/ = document_root -> v2-> users -> edit.php
index.php中的

// read
$app->get('/', function () use ($api) {
    include 'read.php';
});
// add
$app->post('/', function () use ($api) {
    include 'add.php';
});
// update
$app->put('/', function () use ($api) {
    include 'edit.php';
});
and so on...

1 个答案:

答案 0 :(得分:0)

预检请求,例如OPTIONSCORS标准的一部分。通常,如果CORS请求使用除GETHEADPOST之外的任何其他请求方法,则会发送预检请求。此外,如果POST用于发送Content-Type application/x-www-form-urlencodedmultipart/form-datatext/plain以外的application/json的请求数据,则该请求会被预检。

在执行API时,您通常会执行<% def hello 'Hello World' end %> <p>This is simply an erb file (really just a text file)</p> <p><%= hello %></p> 次请求,这意味着请求将被预检。