#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: *");
Дайте мне знать, если у вас возникнут дополнительные вопросы. Для получения дополнительной информации, пожалуйста, найдите ссылки ниже: