Как разместить данные формы в угловых? - PullRequest
0 голосов
/ 17 апреля 2019

Я пытаюсь отправить одну из данных формы на конкретный сервер, для которого CORS отключен, это означает, что он будет принимать только метод POST и запрещенный предварительный запрос OPTIONS, что вполне понятно, но в одном из сообщений говорится, что если запрос прост Запрос (POST с типом содержимого = application / x-www-form-urlencoded) не должен создавать проблему, но я все еще получаю ошибку

Фактическая ошибка на консоли.

Доступ к XMLHttpRequest по адресу https://****.****.com/hpm/launchTransnoxScreen.hpm' от происхождения 'http://localhost:4200' заблокирован политикой CORS: Нет Заголовок «Access-Control-Allow-Origin» присутствует в запрошенном ресурс.

-

Не могли бы вы помочь мне определить проблему? Я совершенно новичок в angular и только начал изучать.

Почему отправляется запрос OPTIONS и можно ли его отключить?

Уже проверенный выше URL


    import { Injectable } from '@angular/core';
    import { Patient } from '../model/patient';
    import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';


    @Injectable({
      providedIn: 'root'
    })
    export class SignupService {
    private url: string = "https://stagemc.transnox.com/hpm/launchTransnoxScreen.hpm";

      private httpHeadersVar = {
        headers: new HttpHeaders({
          'Content-Type': 'application/x-www-form-urlencoded',
          'Accept': 'text/html'
        })
      };
      patientFormData: Patient;
      constructor(private http: HttpClient) { }

      callThP(data) {
        const formData = new FormData();
        formData.append('myKey1', 'some value 1');
        formData.append('myKey2', 'some value 2');
        formData.append('myKey3', 'true');

        this.http.post(this.url, formData, this.httpHeadersVar).subscribe(
          (res) => {
            console.log(res);
          },
          err => console.log(err)
        );
      }
    }

Ниже образец HTML работает нормально индивидуально, когда мы нажимаем на кнопку.

Соединяется с хостом и возвращается с образцом страницы.

<html>
    <head></head>
    <body>
        <form id="hppForm" name="hppForm" method="POST" action=" https://stagecp.transnox.com/hpm/launchTransnoxScreen.hpm">
            <input name="uniqueID" id="uniqueID" type="hidden" value="XXX3" />
            <input name="deviceID" id="deviceID" type="hidden" value="test_deviceID"/>
            <button type="submit" class="btn btn-primary btn-block">Sign up</button>
        </form>
    </body>
</html>

Ответы [ 2 ]

0 голосов
/ 17 апреля 2019

Вы можете перейти по этой ссылке:

https://daveceddia.com/access-control-allow-origin-cors-errors-in-angular/

Также вы должны проверить свой язык бэкэнда, где вы создали API, там включите CORS

0 голосов
/ 17 апреля 2019

Я думаю, что заголовки HTTP не работают: Попробуйте это:

`Реализуйте это:

import { HttpClient, HttpHeaders } from '@angular/common/http';

const httpOptions = {
  headers: new HttpHeaders({
    'Content-Type': 'application/json'
  })
};


this.http.post<any>
      (`Your URL`, formData).subcribe(
      (res) => {
        console.log(res);
      },
      err => console.log(err)
    );

Если это не работает, возможно, ваш API не разрешает CORS.

...