Кодирование данных (простого ассоциативного массива вида

{ name: value,...} в URL-escaped строку (кодировка UTF-8)

*/

function urlEncodeData(data) {

var query = [];

if (data instanceof Object) {

for (var k in data) {

query.push(encodeURIComponent(k) + "=" +

encodeURIComponent(data[k]));

}

return query.join('&');

} else {

return encodeURIComponent(data);

}

}

/*

Выполнение POST-запроса

Url - адрес запроса

Data - параметры в виде простого ассоциативного массива

{ name: value,...}

Callback - (не обяз.) callback-функция,

Которая будет вызвана после выполнения запроса

И получения ответа от сервера

*/

function serverRequest(url, data, callback) {

var request = createRequestObject();

if(!request) return false;

request.onreadystatechange = function() {

if(request.readyState == 4 && callback) callback(request);

};

request.open('POST', url, true);

If (request.setRequestHeader)

request.setRequestHeader("Content-Type",

"application/x-www-form-urlencoded");

request.send(urlEncodeData(data));

return true;

}

Если на сервере проверяется Referer, то надо учитывать, что Firefox при XMLHttpRequest не передает его в заголовках. В этом случае в код следует включить строчку

request.setRequestHeader("Referer", location.href);


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: