
23.03.2012, 19:48
|
Аспирант
|
|
Регистрация: 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.
Помогите, пожалуйста.
|
|

24.03.2012, 20:40
|
 |
Профессор
|
|
Регистрация: 09.07.2007
Сообщений: 304
|
|
смотрите как отправляется запрос в firebug-е
|
|

25.03.2012, 11:48
|
Аспирант
|
|
Регистрация: 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
Подскажите пожалуйста...
|
|

25.03.2012, 17:25
|
 |
猫
|
|
Регистрация: 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.
|
|

25.03.2012, 20:14
|
Аспирант
|
|
Регистрация: 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.
|
|

25.03.2012, 20:19
|
Server
|
|
Регистрация: 26.09.2011
Сообщений: 252
|
|
<?php
header("Content-type: application/json");
?>
тут ваш остальной код
|
|

25.03.2012, 20:22
|
Аспирант
|
|
Регистрация: 23.03.2012
Сообщений: 33
|
|
теперь когда я загружаю в браузер страницу, она просто выдает ее код..
|
|

25.03.2012, 20:52
|
Аспирант
|
|
Регистрация: 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.
|
|

25.03.2012, 21:06
|
Server
|
|
Регистрация: 26.09.2011
Сообщений: 252
|
|
Что-то я не понял. Если ты форму шлешь, то application/x-www-form-urlencoded-это стандартное кодирование данных в пост запросах, который сидит в enctype
|
|

25.03.2012, 21:09
|
Аспирант
|
|
Регистрация: 23.03.2012
Сообщений: 33
|
|
Смотри мне нужно послать на другой сервер ( https://site.ru/example) по нажатию кнопки данные в виде json, но чтобы были с application/json post запросом.
|
|
|
|