Мой метод ajax не работает,

#javascript #jquery #ajax #cordova

#javascript #jquery #ajax #кордова

Вопрос:

В журнале консоли появляется следующее сообщение Причина: отсутствует заголовок CORS ‘Access-Control-Allow-Origin’, поэтому я проверил несколько решений для переполнения стека, но не смог разрешить, кто-то может помочь мне решить эту проблему.

  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script>
    $(document).ready(function () 
    {
    var save_temp = {
                 "token": "e2c420d928d4bf8ce0ff2ec19b371514"
                  };
             var comment_data = JSON.stringify(save_temp);

    //alert(comment_data);
    var request = $.ajax({
       url: "http://vyhub.com/irmtapi/dailyreport/checkReport",
       type: "POST",
       data:comment_data,
       contentType: "application/json; charset=utf-8",
       dataType: 'json',
    });

    request.done(function(msg)
    {
      // $("#log").html( msg );
    alert(msg)
    });

    request.fail(function(jqXHR, textStatus) {
       alert( "Request failed: "   textStatus );
    });

    });

    </script> 
  

Комментарии:

1. Вы ничего не можете сделать со стороны клиента. Это проблема на стороне сервера. Пожалуйста, прочитайте материал из Enable CORS .

2. Нет на стороне клиента, и я получаю ту же ошибку

3. Я использовал 192.168.1.9/ irmtapi / та же проблема

4. Я только что дал вам ссылку для включения CORS. Вы вообще это проверяли? Какой сервер вы используете?

5. Ok сейчас проверит

Ответ №1:

Это явно проблема с кодом на стороне сервера, который не отправляет правильные заголовки, чтобы разрешить совместное использование запросов разных источников. Вам нужно включить CORS двумя способами на сервере Apache с помощью PHP.

Способ 1: использование настроек сервера Apache.

Используя Apache .htaccess , вы можете включить CORS, добавив следующую строку:

 Header set Access-Control-Allow-Origin "*"
  

Чтобы это сработало, вам нужно убедиться, что mod_headers модуль включен. Вы можете включить это с помощью sudo a2enmod headers . Для этого вам нужны разрешения sudo. Кроме того, вам необходимо перезапустить сервер Apache после изменения конфигурации с помощью sudo service apache2 reload .

Способ 2: использование кода PHP.

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

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

Дайте мне знать, если у вас возникнут дополнительные вопросы. Для получения дополнительной информации, пожалуйста, найдите ссылки ниже: