
Yaroslav
24.03.2017
18:56:44

Alex
24.03.2017
18:58:31
Похоже что бекенд рвёт соединение. Может ошибка какая выпадает там?

Yaroslav
24.03.2017
18:59:40
Да вот весь финт ушами в том что бэкенд если с jQ отправлять работает норм. Вот от этого уже вообще бардак в голове

Alex
24.03.2017
19:00:22
Стоит тогда сравнить с какими заголовками отправляла жиквери и с какими без неё

Google

Yaroslav
24.03.2017
19:03:54
А может из-за того что jQ шлет cache: false, это единственная разница

Alex
24.03.2017
19:04:43
А чем отправляешь? Можно попробовать добавить такой заголовок
Ну и стоит подебажить логику бекенда

Vitaliy
24.03.2017
19:11:11
Я делал загрузку фоток через XMLHttpRequest, паралельная загрузка работала, на бэкенде был питон. Так что дело точно не в порядке загрузки фоток. Что используется для отправки?

Yaroslav
24.03.2017
19:11:56
Для отправки испольуется руками написана функция

Alex
24.03.2017
19:12:24
А скинь с какими заголовками отправлять пытается

Vitaliy
24.03.2017
19:12:25
а что она под капотом использует?

Yaroslav
24.03.2017
19:12:36
export function postImg(url, data){
return new Promise(function(resolve, reject) {
xhreq.open('POST', url, true);
xhreq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
xhreq.setRequestHeader("Cache-Control", "no-cache, no-store, must-revalidate");
xhreq.send(data);
xhreq.onreadystatechange = function() {
if (xhreq.readyState == 4) {
if (xhreq.status === 200) resolve(xhreq.responseText)
else reject (xhreq.statusText);
}
}
});
const xhreq = new XMLHttpRequest();

Vitaliy
24.03.2017
19:13:31
не правильный Content type

Alex
24.03.2017
19:13:44
А если попробовать заменить самописное на какой-нибудь axios?

Vitaliy
24.03.2017
19:13:49
а, ты же base64 шлешь..
щас найду исходники проекта, посмотрю как я там делал..

Google

Yaroslav
24.03.2017
19:14:33
да можно заменить, я как бы завтра на чистую голову попробую. Но вот злит аж)..

Alex
24.03.2017
19:21:55
Data передаётся напрямую. А при такой кодировке он ждёт ключ=значение&ключ=значение
Так как самописное то нужно самому делать то что за тебя обычно делают жиквери и другие
И значение наверное через encodeURIComponent надо пропустить

Yaroslav
24.03.2017
19:24:23
data = ключ src=(base64 img)

Alex
24.03.2017
19:25:02
В .send уже должна готовая строка попасть

Yaroslav
24.03.2017
19:25:29
Странно что на разных тестах то одно то два иображения пропускает. Там готовая строка
Наверно все таки бекенд....

Vitaliy
24.03.2017
19:26:03
попробуй отправлять изображения, как форму.
или да, смотри бэкенд.

Alex
24.03.2017
19:26:17
Попробуй сначала подключить axios и через него пост отправить с данными
Самый быстрый вариант)

Vitaliy
24.03.2017
19:26:38
или так.

Yaroslav
24.03.2017
19:27:06
Вот тут у меня засада. Как форму не могу. Там ребята такие с апликейшеном тороные работают. Они пока карточку создадут. 15 раз фото то уберут то вставят.

Alex
24.03.2017
19:29:06
Там скорее ограничение на длину запроса может быть. Поэтому какие-то картинки пролетают, а какие-то слишком тяжелые
А значит можно ещё заиспользовать new FormData. В неё добавить данные и кинуть в send
Тогда будет отправлять как multipart/formdata

Vitaliy
24.03.2017
19:31:23
форм дата - данные для формы. что бы отправить нужна сама форма
через document.createElement
тут есть подстава от хрома с 55 версии

Google

Yaroslav
24.03.2017
19:31:51
Все равно спасибо, народ. Буду копать

Alex
24.03.2017
19:32:04
Не нужна форма. Можно создать такой объект без параметров. И накидать нужного

Vitaliy
24.03.2017
19:32:12
она по правилам безопасности требует, что бы форма была отрисованная на странице, иначе отправка не пройдет. недавно на этом налюбился
FormData для данныех. А жльше эти данные нужно как то отправить. Сам FormData не умеет себя отправлять. ее нужно сериализовать и слать через XMLRequest
var request = new XMLHttpRequest();
request.open("POST", "http://example.com");
request.send(formData);
как то так
var formData = new FormData();
formData.append("foo", "bar");
formData.append("someone", 1101);
formData.append("my_super_image", someFileInput.files[0]);
вот так сама формадата создается и заполняется


Yaroslav
24.03.2017
19:38:28
Заработало, мать его
Все таки фабрика промисов такая штка, на которой голову можно свернуть
const sendImg = function(img){
return new Promise((resolve,reject)=>{
ajX.postImg('http://api.'+domain+'/auto/create', 'src=' + img.currentSrc)
.then(data=>resolve(data))
.catch(err=>reject('error images load'))
})
};
const sendAllImages = function(imgs){
let res = Promise.resolve();
imgs.forEach(elem => {
res = res.then(dt=>sendImg(elem))
});
return res;
}
Вот в этом была проблема: res = res.then(sendImg(elem))

Vitaliy
24.03.2017
19:55:44
есть у кого то опыт переноса большого (~15к строк) проекта на vue частями? Проект достаточно монолитен, очень много кусков зависят друг от друга. Написанно все на Marionette. Не знаю даже как к этому подступиться.

Alex
24.03.2017
20:02:43
У нас постепенно проект переписываем
А подступиться это начать на компоненты разбивать. Сначала одну часть заменить компонентом, потом другую. Где-то переиспользовать создаваемые компоненты

Yaroslav
24.03.2017
20:07:35
Мы так делаем с довольно большим проектом. Но одновременно и сервер-сайд на микро делим. Переписали архитектуру.
Оттестировали роутер. Там где нам надо - написали компоненты. Там где второстепенно по запросу получали с старого сервера сервера готовую страницу. Но боль в евентах. В результате закрыли на месяц проект и пишем отдельно компонета-микропроцесс.

Vitaliy
24.03.2017
20:10:55
вот я тоже боюсь, что придется приостановить пока разработку проекта и все переписывать с нуля. Проект, как это обычно бывает вырос со слов "А давайте попробуйем запилить..." Разрабатывается по сей день.
А тем временем вышел 0.10 nuxt https://nuxtjs.org/guide/release-notes/

Alex
24.03.2017
20:27:32
Ну какие-нибудь часто используемые кусочки переписывать на компоненты. Или в новом месте сразу таким использовать и в оставшихся местах заменить на компонент

Semen
24.03.2017
21:01:23
Что же за конторы такие, где дают на месяц "заморозить" проект?(

Google

Yaroslav
24.03.2017
21:26:59
Проэкт внутреннего использования. На этих технологиях много чего понаписали и не выложили в открытий интернет, бывает)

Kelin
25.03.2017
11:02:30

Remite
25.03.2017
11:03:05
?

Like
25.03.2017
11:03:49
Объясни

Rafael
25.03.2017
11:04:55
чертовы анимешники

Admin
ERROR: S client not available

Boris
25.03.2017
11:06:11
Зачем это?

andretshurotshka?❄️кде
25.03.2017
11:06:33
чет вы заоффтопились

Stanislav
25.03.2017
11:15:35
Это же было 5-6 экранов назад

Kelin
25.03.2017
11:16:01
Хотя кому я рассказываю

Rafael
25.03.2017
13:02:26
Что тут интересного было за последнюю неделю?
@kelin2025 ты уже зафотошопил селфи Ильи?

Kelin
25.03.2017
13:03:00
Но я помню

Rafael
25.03.2017
13:05:46
Уже больше 2х недель не пишу на вью :С

Anatoly
25.03.2017
13:44:48

Rafael
25.03.2017
13:45:09

Kelin
25.03.2017
13:45:17
О, эликсир

Rafael
25.03.2017
13:45:17
а теперь вот на java

Google

Kelin
25.03.2017
13:45:19
И как оно?

Rafael
25.03.2017
13:45:20
пишу бд
О, эликсир
считай я освоил синтаксис, но не использовал его главную фишку - акторы
но вообще прикольный язык такой, какая-то помесь js, python, все это приправленно фп и подается с pattern matching

Kelin
25.03.2017
13:46:53
Неплохо

Rafael
25.03.2017
13:47:02
но там есть и довольно крутые вещи - например конвеерная обработка

Kelin
25.03.2017
13:47:03
На эликсире еще можно метапрограммированием заниматься)

Rafael
25.03.2017
13:47:18
этого прям ппц нехватает в js