POST запросы VcorpJS
Полный список свойств и функций, а так же общие правила их использования, см. здесь: Краткий обзор и правила, список функций VcorpJS.
VcorpJS может собрать (сгенерировать) строку POST запроса с двумя видами Content-Type: "application/x-www-form-urlencoded" и "multipart/form-data"
Отправка параметров в виде пар Имя-Значение, бывает удобна в некоторых случаях, например, когда требуется загнать в строку, в виде строкового значения, содержимое бинарного файла в кодировке base64. Или обеспечить абсолютную кросс-браузерность.
Если Content-Type задан как "multipart/form-data", то можно передавать содержимое файлов в виде обычных параметров Name-Value (Имя-Значение), при необходимости преобразовав бинарное содержимое в формат base64.
Подробнее о структуре POST запроса и вариантах Content-Type: www.w3.org - 17.13.4 Form content types
Так же неплохо расписана структура POST-запросов здесь: Генерация HTTP запросов
Вообще-то и стандартных вариантов хватает (не кросс-браузерных). Если стоит задача отправить произвольную форму с несколькими прикреплёнными файлами, или организовать предпросмотр изображений, то это делается стандартными средствами, с использованием стандартных возможностей:
- через File API браузеров, включая прикрепление файлов через "перетаскивание" Drag-Drop (event.dataTransfer);
- через new FormData() и использование методов .append(name, value), которым можно добавлять и файлы - .append("myfile", obj.files[0], obj.files[0].name);
- через new FileReader() и использование методов .readAsDataURL() и свойства .result в callback-функции в .onloadend;
- отправка запроса (например, объект формы FormData) через объект xmlHttpRequest методом .send() с предварительной установкой заголовков .setRequestHeader()
.httpNew()
Создает и возвращает новый объект xmlHttpRequest (кросс-браузерно).
.httpPost( URL , cType , arrayParameters , XHR [ , handler ] )
Формирует строку с POST-запросом и отправляет его по адресу URL (кросс-браузерно).
Возвращает true или false в случае ошибки или некорректных параметров.
URL - относительный или абсолютный URL-адрес
cType - если указан как "mfd", то multipart/form-data, иначе application/x-www-form-urlencoded
arrayParameters - массив параметров [ "name1" , value1, "name2" , value2, ... ]
XHR - объект xmlHttpRequest
handler - callback-функция для XHR.onreadystatechange,
Если не указана, то XHR.onreadystatechange не устанавливается (возможно, состояние XHR.readyState проверяется по таймеру).
Если указана, то вызывается при завершении POST-запроса (XHR.readyState==4), как function(url), где:
- this - указывает на объект XHR
- url - относительный или абсолютный URL-адрес, куда отправлялся POST запрос (значение параметра URL)
callback - функция может быть текстовой строкой с JavaScript-кодом, в таком случае имя параметра внутри функции: url
(см. правила для callback - функций).
/* Создать новый объект xmlHttpRequest */
var myXHR = VcorpJS.httpNew();
...
/* Отправить POST - запрос */
var a = [ "login" , sLogin , "password" , sPassword ];
VcorpJS.httpPost("/ajax/auth1/", "mfd", a, myXHR, myFunc );
...
/* Завершить обработку ответа */
function myFunc(url) {
if (this.status == 200) {
alert( this.responseText );
} else {
alert( "Ошибка. Код ответа сервера: " + this.status );
}
}
Для навигации по всем страницам этого раздела сайта используйте пиктограмму или ссылку Навигация в верхней строке навигации.