CORS работает в Chrome, но не в Safari или на устройстве iOS

CORS работает в Chrome, но не в Safari или на устройстве iOS (приложение IONIC). я попытался добавить некоторые заголовки к моему запросу но без толку

        'Access-Control-Allow-Origin': '*',
        'Access-Control-Allow-Methods': 'POST, GET, OPTIONS, PUT',
        'Accept': 'application/json',
        'content-type': 'application/json'

Я также пытался отключить ограничение CROSS-ORIGIN в Safari, это сработало хорошо, но не на симуляторе или устройстве IOS.

Итак, как это исправить?

«Я пытался добавить некоторые заголовки в свои запросы» — вам нужно добавить эти заголовки в ответ, а не в запрос!

kai 08.04.2019 14:23

добавить заголовок в веб-API или службу не в приложении

Khurshid Ansari 08.04.2019 14:26

На самом деле я стараюсь больше не устанавливать плагины, поэтому я попытался добавить все, что угодно, в отчаянной попытке больше ничего не устанавливать, но я думаю, что попробую родной HTTP, как сказал @KhurshidAnsari.

Mohammad Bahloul 08.04.2019 14:45

собственный плагин работает идеально, потому что я его использую.

Khurshid Ansari 08.04.2019 15:10
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
4
2 389
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Приложение Ionic (android, ios и ionic serve) работает на локальном хосте. По умолчанию веб-API не разрешает запросы из другого источника.

Итак, у вас есть 3 варианта:

  1. Разрешить перекрестный запрос в веб-api/сервере.
  2. Настройте прокси в ионном приложении связь. Пробовал, работает на андроиде, а не на ios.
  3. Используйте ionic native http связь (рекомендуется), он разрешится в обоих случаях.

Вы можете добавить следующий код в серверный код вашего приложения. header('Access-Control-Allow-Origin: *'); Надеюсь, это поможет вам.

Недавно у меня возникла такая же проблема, но я решил ее, используя cordova-plugin-advanced-http для устройств Android и iOS.

Установить

ionic cordova plugin add cordova-plugin-advanced-http
npm install @ionic-native/http

Использовать

import { HTTP } from '@ionic-native/http/ngx';

constructor(private http: HTTP) {}

...

this.http.get('http://ionic.io', {}, {})
  .then(data => {

    console.info(data.status);
    console.info(data.data); // data received by server
    console.info(data.headers);

  })
  .catch(error => {

    console.info(error.status);
    console.info(error.error); // error message as string
    console.info(error.headers);

  });

Подробнее: см. официальная ссылка

Ответ принят как подходящий

Я сделал это, добавив Access-Control-Allow-Headers:"*" и заменив * моими пользовательскими заголовками в конфигурации на стороне сервера.

Не работает, когда API находится в службе приложений Azure

aj go 27.05.2021 03:15

Другие вопросы по теме