Javascript strip десятичный от числовой

Я использую Math.random для генерации случайной строки, переданной в вызове ajax. Проблема заключается в том, что сгенерированная строка содержит десятичное число, и сервер интерпретирует это как file.ext (которого, конечно, не существует).

Например, с http.log:

File does not exist: /path/to/site/foo.php&arg=123&randval=0.5678719817071954, referer: http://site/bar.php?arg=123

Ajax используется для генерации ссылки:

$(document).ready(function() 
{
    $(\"#placeholder\").load(\"/foo.php?arg=123\");
    var refreshId = setInterval(function() 
    {
        $(\"#placeholder\").load('/foo.php?arg=123&randval='+ Math.random());
    }, 5000);
    $.ajaxSetup({ cache: false });
});

Что я хотел бы закончить это:

foo.php&arg=123&randval=05678719817071954

Аргумент randval не используется, кроме как для гарантии того, что я не получу кэшированную версию страницы. Это может не понадобиться, но это из примера, который я использовал для настройки вызова jjery ajax.

5 ответов

Решение

Я бы предложил, вместо Math.random(), с помощью:

(Math.random() + '').replace('.','');

Math.random() возвращает значение между 0 а также 1, чтобы получить числа между 0 а также max вам нужно умножить это на max, Это должно сделать:

Math.floor(Math.random() * 1e16) // 1e16 == 10000000000000000

Может быть, проще и чаще... если вам не нужно использовать Math.random()

 + (new Date()).getTime();

Почему бы не использовать new Date().getTime() и избежать всех хлопот

Другие ответы верны - но я упустил очевидный тип в моем коде. Ссылка, которую я писал:

foo.php&arg=123

Должно быть

foo.php? Arg=123

enter code here

После обновления файл не найден, ошибка была устранена.

Спасибо за предложения по исправлению математических и десятичных ошибок - не нужно сейчас, но полезно знать.

Другие вопросы по тегам