Функция jQuery .post
использует объект XMLHttpRequest для доступа к URL-адресу, который вы ему передали. Сервер отвечает либо 200 OK
(успех), либо каким-либо другим ответом (предположительно, сбой).
В случае успеха объект XMLHttpRequest имеет свойство responseText
(или responseXML
), установленное для данных, возвращаемых сервером. Закулисная функция jQuery, которая обрабатывает ответ, затем просматривает ваш аргумент dataType
, чтобы определить, что делать с возвращенными данными. В вашем примере он пытается разобрать его в объект.
Предполагая, что ответ является допустимой строкой JSON, он затем передает этот вновь созданный объект в функцию обратного вызова в качестве первого (и единственного) аргумента, который вы назвали dadosResposta
.
Это - это то, как jQuery передает ваши данные в dadosResposta
.
Edit:
Вот некоторый код, который, вероятно, сродни тому, что происходит:
$.post = function([arguments])
{
var xhr = new XMLHttpRequest(); // not cross browser compatible, but good enough for demonstration
xhr.onreadystatechange = function()
{
if (xhr.readyState === 4 && xhr.status === 200)
{
switch (your_dataType) // check your data type
{
case 'json':
your_callback(json_decode(xhr.responseText)); // call your function with JSON object
break;
case 'xml':
your_callback(xhr.responseXML); // call your function with XML
case ... (etc)
}
}
}
xhr.open('POST', your_URL, true);
xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
xhr.send();
}