Заголовок Access-Control-Allow-Origin
не входит ни в запрос ajax, ни в ответ ajax. Ошибка говорит о том, что скрипт пытается загрузить ресурс из недоверенного источника.
Источник здесь тот, откуда загружен скрипт. Таким образом, заголовок Access-Control-Allow-Origin
должен быть установлен вашим бэкэндом, который обслуживает вас сценарий, содержащий отправку.
Не должно быть никакого различия в случайности никакого данного бита хеша SHA-1, таким образом, это возможно. Иначе должен был бы свернуть хеш в себя с помощью XOR, пока Вы не имеете ценность на 60 битов данных, затем кодируете его с помощью Основы 64 для получения главным образом алфавитно-цифрового результата.
Это только необходимо, если Вы хотите смочь генерировать тот же идентификатор неоднократно для тех же входных данных. Иначе, если случайный идентификатор, который Вы генерируете однажды и держите на после этого, использует предложение Anders. Если Вы получаете конфликт, просто генерируете другой.
Можно использовать что, даже простой генератор случайных чисел; однако, необходимо проверить, что код резервирования уже не присутствует. Если это верно, добавьте символы ('x') к строке (date+user), пока Вы не получите новый random/sha1/etc.
Я только надеюсь иметь ~500 резервирования, таким образом, я не воображаю высокой вероятности коллизий.
Другая глупая идея: генерируйте 1 000 или 2 000 уникальных случайных чисел с желаемыми свойствами, сохраните их где-нибудь и присвойте их пользователям, как они регистрируются :)
Вот один способ сделать это в Perl:
sub get_random_name() { my @chars=('a'..'z','A'..'Z'); my $random_string;foreach (1..22) { # rand @chars will generate a random # number between 0 and scalar @chars $random_string .= $chars[rand @chars]; } return $random_string . "-" . time(); }
Я не помню, какой длины время () часть, таким образом, Вам, вероятно, придется скорректировать числа для установки длине. Можно также удалить ту часть, если Вам не нужна она.
Если это - действительно всего 500, то предварительно генерируйте 20,000 из них, в таблицу, то станьте "следующими неиспользованный один" при необходимости в нем.
Некоторые хорошие советы по этому вопросу: Как я создаю случайную алфавитно-цифровую строку в C++?
Я избежал бы включая символы как "1", "l", и "O", "0" и "5", "S", и "Z", "2" в Вашей строке, для помощи клиентам, когда они должны прочитать код резервирования по телефону. Алгоритм, представленный в той ссылке, должен помочь Вам сделать это.
использовать гуид? 16 символов, хотя, если Вы действительно не заботитесь о коллизии, Вы могли бы просто выбрать первые n символы.
В C # вы можете использовать http: // www. dotnetfunda.com/forums/thread1357-how-do-generate-unique-alpha-numeric-random-number-in-aspnet.aspx (говорят, очень простой способ)