Как получить данные через сервак в ajax?
Я хотел бы отправить некоторые данные на странице в сервлет
поэтому я написал следующее jquery, чтобы сделать это
Я использую все данные для построения строки JSON и напрямую отправляю ее сервлету
но я не знаю, как получить все данные из Ajax в сервлете
$("#save").click
(
function()
{
$.ajax
(
{
url:'/WebApplication1/Controller',
data:'{"name":"abc","address":"cde"}',
type:'post',
cache:false,
success:function(data){alert(data);},
error:function(){alert('error');}
}
);
}
);
если увидеть сегмент данных формы заголовков запросов от Chrome
вы увидите, что вся строка JSON является ключом.
Request URL:http://192.168.0.13/WebApplication1/Controller
Request Method:POST
Status Code:404 Not Found
Request Headersview source
Accept:*/*
Accept-Charset:Big5,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:zh-TW,zh;q=0.8,en-US;q=0.6,en;q=0.4
Connection:keep-alive
Content-Length:112
Content-Type:application/x-www-form-urlencoded
Host:192.168.0.13
Origin:http://192.168.0.13
Referer:http://192.168.0.13/system_admin/building.html
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.910.0 Safari/535.7
X-Requested-With:XMLHttpRequest
Form Dataview URL encoded
{"name":"abc","address":"cde"}:
Response Headersview source
Accept-Ranges:bytes
Connection:Keep-Alive
Content-Language:en
Content-Type:text/html; charset=iso-8859-1
Date:Wed, 15 Feb 2012 12:37:24 GMT
Keep-Alive:timeout=5, max=100
Server:Apache/2.2.14 (Win32) DAV/2 mod_ssl/2.2.14 OpenSSL/0.9.8l mod_autoindex_color PHP/5.3.1
Transfer-Encoding:chunked
Vary:accept-language,accept-charset
2 ответа
Смотри сюда,
data:'{"name":"abc","address":"cde"}',
Ваш data
атрибуция неверна. Это должна быть не строка, а настоящий объект JSON. Удалить эти одиночные кавычки.
data:{"name":"abc","address":"cde"},
Таким образом, он доступен в сервлете обычным способом
String name = request.getParameter("name"); // abc
String address = request.getParameter("address"); // cde
Смотрите также:
jQuery.ajax()
документация
Вы можете отправлять данные через ajax без какой-либо формы, вы можете делать это через GET или POST, но вы должны каким-то образом вызвать функцию, которая выполняет петицию ajax (запрос http).
Например, вы можете вызвать свою функцию по ссылке, вот так:
HTML:
<a href="" onClick="javascript: yourAjaxCallFunction(parameters)" >Link Text</a>
JavaScript:
function yourAjaxCallFunction(parameters)
{
//this function sends the request via jquery ($().ajax)
sendHttpRequest(parameters);
//this one handles the response (process data)
processResult();
}
эта ссылка, может быть, то, что вы ищете для функции AJAX в документации JQuery