Neoline: вы бы сами для начала документацию почитали - copy() умеет работать с URL. А если не настроен обработчик, то ни file_get_contents(), ни fopen() работать тоже не будут.
Алексей Уколов
@alexey-m-ukolov Автор вопроса, куратор тега JavaScript
Алексей Тен: я в коде именно это и пытаюсь сделать. Смысл в том, что я хочу оставить браузерную валидацию для тех, у кого отключен js, а для тех, у кого он есть, улучшить поведение.
Сделайте полный пример на jsfiddle, пока непонятно, в чём может быть проблема - код выглядит нормально.
Может, у вас два таких обработчика стоит или кликаете два раза подряд?
А что касается "нету времени лезть", во-первых, мне ваше расписание совершенно не интересно, а во-вторых, я в ответе дал 4 варианта решения, раз вам промисы не нравятся.