我已经开发了一个在文件夹上运行路由的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...
答案 0 :(得分:0)
预检请求,例如OPTIONS
是CORS
标准的一部分。通常,如果CORS
请求使用除GET
,HEAD
或POST
之外的任何其他请求方法,则会发送预检请求。此外,如果POST
用于发送Content-Type
application/x-www-form-urlencoded
,multipart/form-data
或text/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>
次请求,这意味着请求将被预检。