Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.01.2015, 10:33
Интересующийся
Отправить личное сообщение для djan Посмотреть профиль Найти все сообщения от djan
 
Регистрация: 13.09.2014
Сообщений: 12

$http.post передача данных с сервера
При передаче файла .json выдаёт такую ошибку


$http.post('http://путь к .json файлу/', {headers:'Access-Control-Allow-Origin:*'})
.success(function(data, status, headers, config){
console.log('This is Data:',data,'\n\nThis is Status:',status,'\n\nThis is Headers:',headers,'\n\nThis is config:',config);
$scope.cities = data;


}).
error(function(data, status, headers, config) {
console.log('This is Data:',data,'\n\nThis is Status:',status,'\n\nThis is Headers:',headers,'\n\nThis is config:',config);

});
});

Походу проблема в неправильной передачи заголовка

Последний раз редактировалось djan, 09.01.2015 в 10:35.
Ответить с цитированием
  #2 (permalink)  
Старый 09.01.2015, 10:49
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Даже если сервер на другом языке, должно быть все понятно http://enable-cors.org/server_php.html
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #3 (permalink)  
Старый 09.01.2015, 11:44
Интересующийся
Отправить личное сообщение для djan Посмотреть профиль Найти все сообщения от djan
 
Регистрация: 13.09.2014
Сообщений: 12

Попробовал,всё осталось так же.
Ответить с цитированием
  #4 (permalink)  
Старый 09.01.2015, 16:09
Интересующийся
Отправить личное сообщение для djan Посмотреть профиль Найти все сообщения от djan
 
Регистрация: 13.09.2014
Сообщений: 12

$http.post('http://путь к .json файлу/', {headers:'Access-Control-Allow-Origin:*'})
поменял
$http.get('http://путь к .json файлу/')
Всё работает
Спасибо!
Ответить с цитированием
  #5 (permalink)  
Старый 13.01.2015, 15:27
Аватар для Shasoft
Профессор
Отправить личное сообщение для Shasoft Посмотреть профиль Найти все сообщения от Shasoft
 
Регистрация: 03.03.2009
Сообщений: 156

djan, вы наверное не читали документацию по post
В методе get вторым параметром идет config. А в методе post параметр config идет третьим параметром. Вторым передаётся список переменных для отправки на сервер.
Ответить с цитированием
  #6 (permalink)  
Старый 13.01.2015, 16:26
Интересующийся
Отправить личное сообщение для djan Посмотреть профиль Найти все сообщения от djan
 
Регистрация: 13.09.2014
Сообщений: 12

Читал документацию.
Проблема была не этом - а в отсутствии header("Access-Control-Allow-Origin: *") - на сервере.
При передачи данных post с локального хранилища в таком виде(без {headers:'Access-Control-Allow-Origin:*'})- всё было нормально.
Ответить с цитированием
  #7 (permalink)  
Старый 28.07.2015, 17:45
Новичок на форуме
Отправить личное сообщение для Danko Посмотреть профиль Найти все сообщения от Danko
 
Регистрация: 28.07.2015
Сообщений: 2

разрешите апнуть тему. //Решено
Помогите, 2-й день бьюсь над переносом запросов приложения на реальный сервер.
Если все запросы на 1-м сервере - все нормально, но как только перенаправляю запросы на другой сервер - выдает ошибки.
Но все по порядку:
Проект запущен с http://localhost/
отправка запроса:
var promise = $http.post('http://mixo.pl/app_index.php', 
                      {trig: "singin", login: $scope.activeLog.login, pass: $scope.activeLog.pass}) ;
    promise.then (ChangeLogin, ChangeError);

обработчик РНР:
<?php
header('Access-Control-Allow-Origin: *');
$params = json_decode(trim(file_get_contents('php://input')), true);
if (isset($params[trig])) {
	include ("inc/config_db.php");
	if ($params[trig] == 'singin') 	{ include ("inc/app_login.php"); }
	if ($params[trig] == 'new_valid') {	include ("inc/app_new_valid.php");	}
	if ($params[trig] == 'new_done') {	include ("inc/app_new_done.php");	}
}	
?>

возвращает ошибку:
XMLHttpRequest cannot load http://mixo.pl/app_index.php. Request header field Content-Type is not allowed by Access-Control-Allow-Headers.

при этом
headers: Object
Accept: "application/json, text/plain, */*"
Content-Type: "application/json;charset=utf-8"


если добавляю в запрос Access-Control-Allow-Origin, не меняя РНР файла
var promise = $http.post('http://mixo.pl/app_index.php', 
                      {trig: "singin", login: $scope.activeLog.login, pass: $scope.activeLog.pass},
                      {headers: {'Access-Control-Allow-Origin':'*'} } ;  // <--- Добавлено в запрос
    promise.then (ChangeLogin, ChangeError);

то получаю ошибку
XMLHttpRequest cannot load http://mixo.pl/app_index.php. Request header field Access-Control-Allow-Origin is not allowed by Access-Control-Allow-Headers.

при этом
headers: Object
Accept: "application/json, text/plain, */*"
Access-Control-Allow-Origin: "*"
Content-Type: "application/json;charset=utf-8"


Подскажите, плс, в какую сторону смотреть, ибо сам уже запутался полностью.

добавление в РНР файл 3-х строчек решило проблему.
<?php
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST, GET, PUT, DELETE, OPTIONS');
header('Access-Control-Allow-Headers: Content-Type, X-Requested-With')
?>

Последний раз редактировалось Danko, 28.07.2015 в 18:46. Причина: Проблема решена
Ответить с цитированием
  #8 (permalink)  
Старый 29.07.2015, 10:01
Новичок на форуме
Отправить личное сообщение для Danko Посмотреть профиль Найти все сообщения от Danko
 
Регистрация: 28.07.2015
Сообщений: 2

И снова здрасте.
Проблему решил, но разрешилась она только для ПК. На скомпилированном apk не работает, как отследить ошибку на андроиде я не знаю, но по коду вижу что идет обработка промизе как Error.
Подскажите что делать ибо в растерянности.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
"success" и "failure" приём данных с сервера ??? potkin ExtJS 8 30.05.2012 09:27
Двойная Фильтрация данных таблицы David0707 Общие вопросы Javascript 0 19.03.2012 13:00
передача файла с сервера на клиент ojogin Общие вопросы Javascript 10 11.11.2010 23:29
Преобразование данных с сервера в JSON frolvict Общие вопросы Javascript 1 04.04.2010 12:26
передача массива с сервера subaru Общие вопросы Javascript 3 02.07.2008 19:57