Page 147 - 6108
P. 147
Для відправки даних в форматі необхідно сформувати відповідний рядок
роздільник. Рядок, який розділяє окремі поля починається з двох тире, а
останній роздільник починається і завершується двома тире.
let boundary = 'aBoundaryString’;
let body = '\r\n--' + boundary + '\r\n';
// додаємо поля
body += 'Content-Disposition: form-data; name="' + name+
'"\r\n\r\n' + (data) + '\r\n');
body += '--' + boundary + '\r\n';
...
body += '--' + boundary + '--\r\n':
let xhr = new XMLHttpRequest();
xhr.open('POST', '/submit', true);
xhr.setRequestHeader('Content-Type', 'multipart/form-data;
boundary=' + boundary);
xhr.send(body);
Можна створити запит, який сервер сприйме як завантаження файлу.
Щоб додати файл потрібно використовувати той же код, що вище,
модифікувавши заголовки перед полем, яке є файлом, так:
Content-Disposition: form-data; name="myfile";
filename="pic.jpg"
Content-Type: image/jpeg
(пустая строка)
вміст файлу.
3.6.4 Крос-доменні запити
Зазвичай запит XMLHttpRequest може робити запит тільки в рамках
поточного сайту. При спробі використовувати інший домен / порт / протокол –
браузер видає помилку.
Існує сучасний стандарт XMLHttpRequest, він ще в стані чернетки, але
передбачає крос-доменні запити і багато іншого.
Крос-доменні запити проходять спеціальний контроль безпеки.
10
Специфікація CORS накладає спеціальні обмеження на запити, які
покликані не допустити подібного апокаліпсису.
Запити в ній діляться на два види.
Простими вважаються запити, якщо вони задовольняють наступним двом
умовам:
1) Простий метод: GET, POST або HEAD
2) Прості заголовки – тільки зі списку:
– Accept
– Accept-Language
– Content-Language
– Content-Type зі значенням application / x-www-form-
urlencoded, multipart / form-data або text / plain.
10 Cross-Origin Resource Sharing (CORS) — специфікація технології браузерів,
яка описує способи веб-сервісам надавати скриптам, що надходять з домену,
який не відповідає політиці одного походження «пісочницю»