Вэнь расширяет класс с mixin в дроте, вызов супер функции получил ошибку & ldquo; Класс XXX не имеет неназванного конструктора. & Rdquo;

Если вы получите это сообщение об ошибке из браузера:

Нет заголовка «Access-Control-Allow-Origin» на запрошенном ресурсе. Поэтому Origin '...' не разрешает доступ

, когда вы пытаетесь выполнить запрос AJAX POST / GET удаленному серверу, который вышел из-под контроля, пожалуйста, забудьте об этом простом исправлении :

<?php header('Access-Control-Allow-Origin: *'); ?>

Что вам действительно нужно делать, особенно если вы используете JavaScript для выполнения запроса Ajax, является внутренним прокси-сервером, который берет ваш запрос и отправляет его на удаленный сервер.

Сначала в вашем JavaScript, сделайте вызов Ajax на свой собственный сервер, например:

$.ajax({
    url: yourserver.com/controller/proxy.php,
    async:false,
    type: "POST",
    dataType: "json",
    data: data,
    success: function (result) {
        JSON.parse(result);
    },
    error: function (xhr, ajaxOptions, thrownError) {
        console.log(xhr);
    }
});

Затем создайте простой PHP-файл с именем proxy.php, чтобы обернуть ваши данные POST и добавить их на удаленный URL-сервер в качестве параметров. Я приведу пример того, как я обойду эту проблему с API-интерфейсом API Expedia:

if (isset($_POST)) {
  $apiKey = $_POST['apiKey'];
  $cid = $_POST['cid'];
  $minorRev = 99;

  $url = 'http://api.ean.com/ean-services/rs/hotel/v3/list?' . 'cid='. $cid . '&' . 'minorRev=' . $minorRev . '&' . 'apiKey=' . $apiKey;

  echo json_encode(file_get_contents($url));
 }

Выполняя:

 echo json_encode(file_get_contents($url));

Вы делаете один и тот же запрос, но на на стороне сервера и после этого, он должен работать нормально.

0
задан Jagger Wang 13 July 2018 в 15:57
поделиться