Javascript.RU

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

application/json
Здравствуйте, возникла проблема с пост запросом к серверу.
По нажатию на кнопку вызывается функция home(), в которой должны идти данные на https страницу в формате json post запросом.
Код такой:
<script type="text/javascript" charset="utf-8" >
		function home(){
		$$a({
        type:'post',//тип запроса
      contentType: 'application/json; charset=utf-8',
	dataType: 'json',
	url:'https://site.ru/example',//url адрес файла обработчика
        data:{"Name":"Oleg","last_name":"Ivanov","amount":2, },//параметры запроса
               
       },

       
        success:function (data) {//возвращаемый результат от сервера
            $$('result',$$('result').innerHTML+'<br />'+data);

       }

    });

Запрос проходит, но он приходит в виде application/x-www-form-urlencoded, а нужно application/json.
Помогите, пожалуйста.
Ответить с цитированием
  #2 (permalink)  
Старый 24.03.2012, 20:40
Аватар для vflash
Профессор
Отправить личное сообщение для vflash Посмотреть профиль Найти все сообщения от vflash
 
Регистрация: 09.07.2007
Сообщений: 304

смотрите как отправляется запрос в firebug-е
__________________
лучшая rss читалка zzreader.com
Ответить с цитированием
  #3 (permalink)  
Старый 25.03.2012, 11:48
Аспирант
Отправить личное сообщение для Serjuk Посмотреть профиль Найти все сообщения от Serjuk
 
Регистрация: 23.03.2012
Сообщений: 33

посмотрел в firebuge выдает :
Код:
Заголовки ответа

Cache-Control	must-revalidate,no-cache,no-store
Connection	keep-alive
Content-Length	1438
Content-Type	text/html; charset=iso-8859-1
Date	Sun, 25 Mar 2012 07:42:05 GMT
Server	nginx/0.7.67

Заголовки запроса
Accept	text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding	gzip, deflate
Accept-Language	ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
Connection	keep-alive
Content-Length	111
Content-Type	application/x-www-form-urlencoded; charset=UTF-8
Во вкладке POST:
Код:
Параметры:
application/x-www-form-urlencoded
Ответ :
Код:
"NetworkError: 415 Unsupported Media Type - https://site.ru/example"
Это потому что, нужно application/json, а не application/x-www-form-urlencoded

Подскажите пожалуйста...
Ответить с цитированием
  #4 (permalink)  
Старый 25.03.2012, 17:25
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Serjuk,
Черным по белому написано что сервер присылает html:
Цитата:
Content-Type text/html; charset=iso-8859-1
Логично предположить что раз это заголовок, то нужно присылать не этот заголовок, а другой (json), в php делается так:
header("Content-type: application/json");

перед этим кодом не должно стоять ни одно echo или что-то подобное.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
  #5 (permalink)  
Старый 25.03.2012, 20:14
Аспирант
Отправить личное сообщение для Serjuk Посмотреть профиль Найти все сообщения от Serjuk
 
Регистрация: 23.03.2012
Сообщений: 33

Вот полный код моей страницы (home.php)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

	<meta http-equiv="Content-Type" content="application/json; charset="utf-8" />
	<title>Тестирование </title>
        <script type="text/javascript"       src="http://scriptjava.net/source/scriptjava/scriptjava.js"></script>
	<script src="http://host.ru/application/js/jquery-1.6.1.min.js" type="text/javascript"></script>
<script type="text/javascript" charset="utf-8" >
        function home(){
        $$a({
        type:'post',//тип запроса
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',
        url:'https://site.ru/example',//url адрес файла обработчика
        data:{"Name":"Oleg","last_name":"Ivanov","amount":2 },//параметры запроса
    
       },

       success:function (data) {//возвращаемый результат от сервера

       $$('result',$$('result').innerHTML+'<br />'+data);

        }

    });

        }
     
    </script>
</head>

<body>

<input value="go" onclick="javascript:home()" type="button" />
</body>

</html>

Как мне тут задать заголовок application/json, чтобы данные шли серверу с этим заголовком, а не с application/x-www-form-urlencoded.
Ответить с цитированием
  #6 (permalink)  
Старый 25.03.2012, 20:19
Server
Отправить личное сообщение для Rootpassword Посмотреть профиль Найти все сообщения от Rootpassword
 
Регистрация: 26.09.2011
Сообщений: 252

<?php
header("Content-type: application/json");
?>
тут ваш остальной код
Ответить с цитированием
  #7 (permalink)  
Старый 25.03.2012, 20:22
Аспирант
Отправить личное сообщение для Serjuk Посмотреть профиль Найти все сообщения от Serjuk
 
Регистрация: 23.03.2012
Сообщений: 33

теперь когда я загружаю в браузер страницу, она просто выдает ее код..
Ответить с цитированием
  #8 (permalink)  
Старый 25.03.2012, 20:52
Аспирант
Отправить личное сообщение для Serjuk Посмотреть профиль Найти все сообщения от Serjuk
 
Регистрация: 23.03.2012
Сообщений: 33

Попробовал сделать вот так:
....
data:{"Name":"Oleg","last_name":"Ivanov","amount":2 },//параметры запроса
   headers: {
                 'Content-Type': 'application/json'
            },
              success:function (data) {//возвращаемый результат от сервера
....

Все равно почему то заголовок : application/x-www-form-urlencoded; charset=UTF-8

Не понимаю в чем проблема...
Мне надо, чтобы по нажатию на кнопку передались данные post запросом в виде json c заголовком application/json на другой сервер ( https://site.ru/example)

Последний раз редактировалось Serjuk, 25.03.2012 в 21:00.
Ответить с цитированием
  #9 (permalink)  
Старый 25.03.2012, 21:06
Server
Отправить личное сообщение для Rootpassword Посмотреть профиль Найти все сообщения от Rootpassword
 
Регистрация: 26.09.2011
Сообщений: 252

Что-то я не понял. Если ты форму шлешь, то application/x-www-form-urlencoded-это стандартное кодирование данных в пост запросах, который сидит в enctype
Ответить с цитированием
  #10 (permalink)  
Старый 25.03.2012, 21:09
Аспирант
Отправить личное сообщение для Serjuk Посмотреть профиль Найти все сообщения от Serjuk
 
Регистрация: 23.03.2012
Сообщений: 33

Смотри мне нужно послать на другой сервер ( https://site.ru/example) по нажатию кнопки данные в виде json, но чтобы были с application/json post запросом.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Form plugin, application/json и IE capscom jQuery 4 15.11.2011 16:50
Ошибка в jquery.forms ? Помогите разобраться. Ксандер jQuery 10 26.08.2009 18:39