我已经在使用Codeigniter-Rest Server麻烦了一个星期。 我有一个名为 Users 的控制器,它具有2种方法 all_users_get 和 register_post 。
register_post
Sub Test()
Call ScanDir("C:\temp\test2\")
End Sub
Private Sub ScanDir(ByVal DirPath As String)
Dim oCurFile As String
oCurFile = Dir(DirPath)
Dim oCurRow As Long
oCurRow = 2
Dim oFile As String
Do While oCurFile <> ""
Open DirPath & oCurFile For Input As #1
oFile = Input(LOF(1), 1)
Close #1
Sheet1.Cells(oCurRow, 1).Value = oCurFile
Sheet1.Cells(oCurRow, 2).Value = oFile
oCurFile = Dir()
oCurRow = oCurRow + 1
oFile = ""
Loop
End Sub
如果我更改POST方法 all_users_get ,我会遇到相同的错误,只能与GET一起使用
returns { "status": false, "error": "Unknown method" }
我正在使用Xampp在本地主机中运行代码,并且在 phpinfo
上找到了_SERVER [“ REQUEST_METHOD”] GET
我很困惑,我不知道这是否与Xampp conf或我的代码有关,请帮忙。谢谢大家
答案 0 :(得分:0)
此功能应该对您有用:)
public function index_post()// post data to the database
{
$data = [
'first_name' => $this->post('first_name'),
'last_name' => $this->post('last_name'),
'email' => $this->post('email')
];
if( $this->users->createUser($data) > 0)
{
$this->response([
'status' => true,
'message' => 'NEW USER CREATED'
], REST_Controller::HTTP_CREATED);
}
else{
$this->response([
'status' => false,
'message' => 'FAILED TO CREATE NEW USER'
], REST_Controller::HTTP_BAD_REQUEST);
}
}
答案 1 :(得分:0)
header('Access-Control-Allow-Origin: *');
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
header('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS');
header('Access-Control-Allow-Headers: Content-Type');
exit;
}
只需在对我有用的构造函数中的行上方复制
答案 2 :(得分:0)
终极解决方案 第 1 步 在您的构造函数中,添加以下代码
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: X-API-KEY, Origin, X-Requested-With, Content-Type, Accept, Access-Control-Request-Method");
header("Access-Control-Allow-Methods: GET, POST, OPTIONS, PUT, DELETE");
$method = $_SERVER['REQUEST_METHOD'];
if ($method == "OPTIONS") {
die();
}
第 2 步: 打开你的 route.php 并定义一个 API 路由 例如
$route['api/v1/auth/login'] = 'api/v1/auth/login';
注意:路线将在步骤 3 中使用
第 3 步: 打开你的config.php,在下面添加代码
if (stripos($_SERVER["REQUEST_URI"],'/api/v1/auth/login/') === FALSE) {
$config['csrf_protection'] = FALSE;
}else{
$config['csrf_protection'] = FALSE;
}
注意:将 /api/v1/auth/login/
更改为您的端点