Nano Hash - криптовалюты, майнинг, программирование

Ionic 3 — данные POST в конечную точку Heroku

поэтому у меня есть серверная служба, работающая на Heroku в конечной точке https://sample.herokuapp.com/. Я пытаюсь отправить следующий объект JSON в конечную точку /bug/:

{
    "email": "[email protected]",
    "name": "Anthony",
    "text": "Test Bug",
    "picture": "Empty"
}

Если я отправляю эти данные в Insomnia или Postman, они отлично работают и возвращают HTML-ответ с проанализированной информацией. Однако, когда я отправляю эти данные, используя следующий код в Ionic 3,

sendMail(type:string, text:string):void {
            this.nativeStorage.getItem('sample').then((sample) => {
                  var data = new Object();
                  data["name"] = sample.name
                  data["email"] = sample.email;
                  data["picture"] = sample.picture;
                  data["text"] = text;

                  this.db.object('/general/sample').take(1).subscribe((sample) => {
                        var xhr = new XMLHttpRequest();
                        var endpoint = sample.address + sample.endpoints[type];

                        xhr.addEventListener("readystatechange", function () {
                        if (this.readyState === 4) {
                            console.log("Got response: " + this.responseText);
                        }
                    });

                        xhr.open("POST", endpoint);
                        xhr.setRequestHeader("Accept", "application/json");
                    xhr.setRequestHeader("Content-Type", "application/json");
                        console.log("sample sending: " + JSON.stringify(data, undefined, 2));
                        console.log("sample endpoint: " + endpoint);

                    xhr.send(JSON.stringify(data));
                  })
            })
    }

Я получил следующий журнал ошибок в Heroku:

2017-07-05T17:02:24.707431+00:00 heroku[router]: at=info method=OPTIONS path="/bug" host=sample.herokuapp.com request_id=5e679c8e-cac7-4ff2-9277-dec80a250c11 fwd="150.108.242.198" dyno=web.1 connect=1ms service=3ms status=200 bytes=215 protocol=https

Я провел много исследований по этому вопросу, и я считаю, что это проблема CORS. Однако я пытался использовать заголовки Access-Control-Allow-... для решения этой проблемы, но получал те же ошибки.

Я установил плагин Cordova whitelist и включил тег meta в свой файл index.html.

Это довольно сложный вопрос, поэтому я ценю всю помощь!


  • Просто интересно, почему бы не использовать объект angular Http? У меня есть код, говорящий с героку, и у меня нет проблем. Я настраиваю свои контроллеры для внедрения объекта Http и использую его в своих методах для выполнения остальных вызовов. 05.07.2017
  • Спасибо за предложение, но я попробовал HttpModule и все равно получил ту же проблему в Heroku. Любые идеи относительно того, почему это может быть? 05.07.2017

Ответы:


1

На стороне героку у вас настроен cors?

 var app = express();
 /* cors conig */
 var corOptions = {
     "origin": "*",
     "methods": "GET,HEAD,PUT,PATCH,POST,DELETE",
     "preflightContinue": true,
     allowedHeaders:  'Content-Type,Authorization,X-Requested-With'
 }
 app.use(cors(corOptions));

моя зависимость cors: "cors": "^ 2.8.1"

05.07.2017
  • Это сделало это для меня. Спасибо большое! 05.07.2017
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..