Я использую angular.js для создания приложения ReSTful для мобильных устройств с использованием кордовы. для серверной части я использую slim framework.all в соответствии с этим учебным пособием 🙁 http://www.angularcode.com/user-authentication-using-angularjs–php-mysql/ )
Но когда я загрузил папку api на сервер, возникает ошибка: заголовок «Access-Control-Allow-Origin» присутствует на запрошенном ресурсе. Следовательно, «localhost» источника не допускается. В ответе был код статуса HTTP 404.
Я читал о добавлении «Access-Control-Allow-Origin» и реализовал его по этой ссылке: http://help.slimframework.com/discussions/problems/810-no-subject
$app->get('/session', function() { **$response->header('Access-Control-Allow-Origin', '*');** $db = new DbHandler(); $session = $db->getSession(); $response["uid"] = $session['uid']; $response["email"] = $session['email']; $response["name"] = $session['name']; echoResponse(200, $session); });
также попробовал
$app->get('/session', function() { **$session->header('Access-Control-Allow-Origin', '*');** $db = new DbHandler(); $session = $db->getSession(); $response["uid"] = $session['uid']; $response["email"] = $session['email']; $response["name"] = $session['name']; echoResponse(200, $session); });
Я все еще получаю ту же ошибку.
-> И последняя строка правильная? echoResponse(200, $session);
Заранее спасибо 🙂
Я использую тот же файл на firefox, и хром и хром могут получить доступ к файлу на сервере. Кроме того, один файл JSON на моем сервере ранее пользовался кордовым приложением и теперь не работает. Вызывающий код точно такой же,
.controller('ListController', ['$scope', '$http', function($scope, $http) { $http.get('js/data.json').success(function(product_data) { $scope.artists = product_data; }); }])
Откройте Chrome с помощью флага --disable-web-security
. Это предотвратит появление и возможность разработки на вашем рабочем столе.
Кордова / PhoneGap в основном делают это для вас, когда он находится в форме приложения. Возможно, вам придется посмотреть, как открыть его с помощью флага, в зависимости от того, в какой операционной системе вы находитесь.
Кроме того, не продолжайте использовать ваш браузер для обычных действий с включенным флагом . Если возможно, также используйте CLI, чтобы открыть новый профиль пользователя, чтобы он не влиял на существующий профиль и не открывал вас для любых уязвимостей безопасности.
Некоторые веб-браузеры запрещают CORS из localhost (или любой псевдоним для localhost, например 127.0.0.1). Решение заключается в доступе к нему с использованием URL-адреса, отличного от localhost.
Одним из таких URL-адресов, который может работать, является ваш IP-адрес.
Если вы предпочитаете не использовать свой IP-адрес (возможно, потому, что он назначается случайным образом вашим маршрутизатором при каждом подключении), вы можете назначить поддельный домен себе, изменив /etc/hosts
(или Windows\System32\Drivers\etc\hosts
на Windows).
Например, добавьте это в /etc/hosts
:
127.0.1.1 thismachine
Затем вы можете получить доступ к своему веб-серверу, набрав http://thismachine
в своем веб-браузере.