Угловая перекрестная проблема происхождения в вызове API Backend PHP? - PullRequest
0 голосов
/ 11 февраля 2019

Столкновение с CORS под углом, когда я пытался сделать вызов API между моим локальным хостом и другим доменом. У меня проблема 404.

1.Front End: Angualr 7

Frontчасть конечного запроса:

const httpOptions = {
    headers: new HttpHeaders({
      'Content-Type':  'application/json',
      'Access-Control-Allow-Origin': '*',
        'Access-Control-Allow-Credentials': 'true',
        'Access-Control-Allow-Methods':'POST',
        'Access-Control-Allow-Headers': 'Content-Type'
    })
  }
login(username: string, password: string) {
        return this.http.post<any>('http://remote/djaxtesting/enter_uiupgrade/index.php/api/v1/user/validate',
        {acc_type: "ADMIN", uemail: "djax_admin@dreamajax.com", upw: "123456"},httpOptions)
            .pipe(map(user => {}))


    }

Кодирование конца:

<?php defined('BASEPATH') OR exit('No direct script access allowed');
header ("Access-Control-Allow-Origin: *");
header ("Access-Control-Allow-Credentials: true");
header('Access-Control-Allow-Methods: POST');
header('Access-Control-Allow-Headers: Content-Type');
header('Content-Type: application/json');

    public function validate_post()
    {

        $role = array('ADVERTISER','TRAFFICKER','ADMIN','MANAGER');

        if($this->post('acc_type') !='' and in_array($this->post('acc_type'),$role))
        {

            switch(strtoupper($this->post('acc_type')))
            {
                case "ADMIN":

                    $adminObj   =   $this->do_networks->validate_user($this->post('uemail'),$this->post('upw'),$this->post('acc_type'));
                    //$this->response($adminObj, 200);
    }
    }
    }

введите описание изображения здесь

Мы используем php для API.Помощь в передаче должна решить эту проблему?

1 Ответ

0 голосов
/ 11 февраля 2019

Проблема с методом выбора.Опцией запроса должно быть 200, возвращающее пустой ответ.Затем браузер отправит реальный запрос POST.

для этого замените заголовками в вашем PHP-файле в конструкторе.Это будет работать.

header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: X-API-KEY, Origin, X-Requested-With, Content-Type, Accept, Access-Control-Request-Method, Authorization");
header("Access-Control-Allow-Methods: GET, POST, OPTIONS, PUT, DELETE");
   $method = $_SERVER['REQUEST_METHOD'];
   if ($method == "OPTIONS") {
       die();
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...