Нет проблем с Access-Control-Allow-Origin в гибридном приложении

Я закончил разработку своего первого гибридного приложения. На локальном хосте все идет гладко. Но когда я попытался сделать это живым, я получил эту ошибку.

XMLHttpRequest не может загрузить https://www.example.com/app/login.php. нет
Заголовок «Access-Control-Allow-Origin» присутствует в запрошенном
ресурс. Происхождение ‘null’, следовательно, не разрешено. Ответ
имел код состояния HTTP 500.

Почему это происходит?

Вот мой пример, настроенный по моему запросу ajax:

$.ajax({
type: "POST",
url: "https://www.example.com/app/login.php",
crossDomain: true,
dataType: 'json',
data: $.trim(frm.serialize()),
timeout: 10000,
beforeSend: function() {
$('#loader').css({
display: "block"});
}

Тогда на моем PHP-сервере код:

<?php
header('Access-Control-Allow-Origin: *');
header('Content-Type: application/json');
header('HTTP/1.1 200 OK');
{
//more code here..

echo json_encode($result_array);
}

Итак, как вы можете видеть, я уже добавил заголовок Access-Control-Allow-Origin: * но похоже не работает. Что мне нужно знать, чтобы устранить эту ошибку? Или в чем должна быть проблема?

Обновление: в Firefox это ошибка журнала консоли:

Запрещен перекрестный запрос: одна и та же политика происхождения запрещает чтение
удаленный ресурс на https: //www.example/app/login.php. (Причина:
Отсутствует заголовок CORS «Access-Control-Allow-Origin»

Любая помощь? Я использую Intel XDK в создании моего приложения.

3

Решение

Я не думаю, что ваша проблема имеет отношение к контролю доступа

Из вашей ошибки:

Ответ имеет HTTP-код состояния 500

Предполагает, что ваше приложение упало. В результате Access-Control-Allow-Origin заголовок никогда не был правильно установлен. Когда проблема с контролем доступа, браузер (в любом случае Firefox) показывает код состояния 401 Unauthorizedне 500 server error

Поищите в своих журналах ошибок причину сбоя. Также попробуйте отключить .htaccess и посмотреть, если ошибка не исчезнет, ​​потому что нарушенные правила / конфигурации являются частой причиной сбоев

1

Другие решения

Ошибка отправки ajax как 500 Internal Server Error потому что что-то не так с серверной частью (код php), в которой используется функция для более высокой версии PHP. Моя версия php хоста ниже, чем я использую на локальной машине. Попытка переписать код и сначала протестировать его ответные данные онлайн исправила мою проблему. Нет ничего плохого в коде запроса ajax.

0

По вопросам рекламы [email protected]