Codeiniter Rest Server - не удалось получить данные, отправленные по запросу - PullRequest
0 голосов
/ 02 марта 2019

Я создаю простой API отдыха в Codeigniter, используя chriskacerguis / codeigniter-restserver . Я успешно создал метод входа в систему и проверил его с помощью почтальона, и он работает, но я создал простую страницу входаиспользовать API, используя Jquery AJAX, но когда я пытаюсь отправить через него, но $this->post() не может прочитать его, но он работает с почтальоном.

Контроллер

<?php
defined('BASEPATH') or exit('No direct script access allowed');
require APPPATH . 'libraries/REST_Controller.php';
require APPPATH . 'libraries/Format.php';

use Restserver\Libraries\REST_Controller;

header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: GET, POST, OPTIONS, PUT, DELETE");

    class Api extends REST_Controller
    {


        public function user_login_post()
        {
            $req = $this->post(); // always empty

            if (empty($req)) {
                $status = parent::HTTP_EXPECTATION_FAILED;
                $response = ['status' => $status, 'msg' => 'Missing data!'];

                $this->response($response, $status);

                exit();
            }

            $user = $this->User_model->get($req['email']);

            if (empty($user)) {
                $status = parent::HTTP_NOT_FOUND;
                $response = ['status' => $status, 'msg' => 'Email does not exist!'];

                $this->response($response, $status);

                exit();
            }

            if (md5($req['password']) != $user->password) {
                $status = parent::HTTP_FORBIDDEN;
                $response = ['status' => $status, 'msg' => 'Invalid email or password!'];

                $this->response($response, $status);

                exit();
            }

            // Generate token
            $tokenData['id'] = $user->user_id;
            $tokenData['email'] = $user->email;
            $tokenData['type'] = 'user';

            $token = AUTHORIZATION::generateToken($tokenData);

            $status = parent::HTTP_OK;

            $response = ['status' => $status, 'token' => $token, 'logged_in' => true];

            $this->response($response, $status);

        }
    }

Вот код JS, который я использовал для отправки запроса вышеупомянутому методу

$('#submit').click(function (e) {
    e.preventDefault();

    const url = "<?= base_url() ?>" + 'api/user_login';

    $.ajax({
        type: 'POST',
        url: url,
        data: {
            "email": "test@gmail.com",
            "password": "password"
        },
        dataType: 'json',
        cache : false,
        processData: false,
        success: function (res) {
            console.log(res);

        },
        error: function (err) {
            console.log(err);

        }
    })

});

Я не могу получить данные на стороне сервера.Любая помощь будет оценена.

...