Я получаю ответ на вкладке сети, но все еще показывает ошибку в консоли - PullRequest
0 голосов
/ 17 июня 2019

Я пишу метод post в угловом формате, чтобы опубликовать некоторые данные, которые я возвращаю JSON в Codeigniter.

Это сервис:

public userlogin(data) {
  let uploadURL = `myurl`;

  const requestOptions: Object = {
    responseType: 'json'
  }    
   return this.http.post<any>(uploadURL, data,requestOptions).pipe(map((responce) => {
    console.log(responce);
    return responce;
  })
  );
}

В моем компоненте:

this.services.postuser(formData).subscribe(
  (data) => {
    console.log(data);
  }
);

следующая ошибка, я получаю в консоли Http error response to my post method

и вот скриншот моей вкладки сети, где ответом является JSON enter image description here

Я прошел через много вопросов и ответов о переполнении стека, но решение не работает для меня.Я также изменил ответ метода post с JSON на text и тип ответа в методе post на text, все еще получающий ту же ошибку.

внутренняя функция для сообщения:

public function user_login()
    {
    if(is_array($_POST) && sizeof($_POST) >0){

       $where_array = array(
        'username'=>$this->input->post('username'),
        'password'=>$this->input->post('password')
        );

            $result = $this->Admin_model->checkuser($where_array);
            // print_r($result); die;
            if($result == "user not found" || $result == "incorrect password")
            {
                $json_data = array("Code"=>"1","data"=>$result);
                echo json_encode($json_data, JSON_UNESCAPED_SLASHES);

            }else{
                 $json_data = array("Code"=>"0","data" => "Login successfull");
                 echo json_encode($json_data, JSON_UNESCAPED_SLASHES);
            }
     }   
 }

Ответы [ 2 ]

0 голосов
/ 17 июня 2019

решил сам:

Я обнаружил, что проблема не в отправляемом запросе или ответе.на самом деле, это была ошибка cors, потому что сервер не настроен на прием перекрестного запроса.

сначала я устанавливаю это расширение Firefox для проверки проблемы, затем я получил ответ.

так После тестирования, в моем файле ci я установил источник в '*', чтобы разрешить все источники.

header("Access-Control-Allow-Origin: *");
0 голосов
/ 17 июня 2019

По моему личному опыту работы с базовым бэкендом asp.net (база данных sql) и экспресс-бэкендом NodeJS (mongoDB)

внутри углового интерфейса:

внутри моих сервисов, которые возвращают Observable просто верните почтовый запрос, например:

return this.http.post(url, data, options);

в компоненте, использующем сервис, будет выглядеть так:

this.service.postMethod(data).subscribe((res)=>{}, (err)=>{});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...