Ответ на предпечатную проверку не имеет статуса HTTP ok.403 в угловой 6 - PullRequest
0 голосов
/ 10 октября 2018

Я пытаюсь сделать запрос PUT, но получаю следующую ошибку:

Failed to load <localhost:8080/uaa/groups/dfsfaes8323df32>: Response for preflight does not have HTTP ok status.

Видимо, это работает, когда я делаю запросы GET и POST, и работает в почтальоне, но не работает с PUTзапрос в моем коде.

Вот мой запрос:

let link = "https://ice.<mydomain>.com/uaadev/Groups/{groupId}";
link = link.replace("{groupId}", data);
const updLoad = {
  displayName: this.groupInfoObjects.displayName,
  description: this.groupInfoObjects.description,
  zoneId : "uaa",
  schemas: [
 "urn:scim:schemas:core:1.0"
  ]
};
let Header = new Headers({
  Authorization: `Bearer {token}`.replace("{token}", this.token),
  "Content-Type": "application/json",
  Accept: "application/json",
  "if-Match":"*"
});
let Option = new RequestOptions({ headers: Header });

this.http.put(link, updLoad, Option).subscribe(
  res => {
    console.log(res);
    console.log(res.status);
    if (res.status === 200) {
 this.fetchGroupInfo(this.dataservice.getDTO("GroupId"));
      swal(" Updated Successfully");
    }
  },
  error => {
    console.log("errroroorororororor");
    console.log("error object " +error);
  }
);

Ответы [ 2 ]

0 голосов
/ 12 октября 2018
the process for solving these process is listed below:

1.create a proxy.conf.json file 
2.set it up like this:copy and paste the below code
{
  "/dev/*": {
    "target": "https://google.com/",
    "secure": false
  },
  "changeOrigin": false,
  "logLevel": "debug"
}

3. add this to your package.json :
"start": "ng serve --proxy-config ../Activated/proxy.conf.json",
Note:Activated is the folder name that contains the angular code.
4.you place your url link:
let link = "dev/Groups/{groupId}" (just a sample)`enter code here`

5.npm start to restart you application.
0 голосов
/ 11 октября 2018

Это потому, что вы должны убедиться, что ваш сервер настроен на отправку 200 или 204 для запроса OPTIONS , который запускается браузером до запроса PUT.

См. Первый ответ здесь

Причина, по которой вы получаете это с PUT, заключается в том, что он запускает OPTIONS (дополнительный предварительный запрос браузера), чтобы узнать больше о том, какие методывызвать это вы можете посмотреть здесь .По сути, браузер "пингует" сервер перед PUT.

Что расстраивает, так это то, что это похоже на проблему внешнего интерфейса, потому что запрос PUT будет работать во время тестирования (т. Е. Если вы используете почтальон), но не в браузере.

Так что это не проблема внешнего интерфейса, и он не можетрешаться с помощью Angular.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...