почему этот дополнительный «? _ = 1579068576376» добавляется в URL «/ api / Customers» для моего запроса API - PullRequest
1 голос
/ 15 января 2020

Я делаю запрос к api '/ api / Customers', но когда я проверяю вкладку заголовков сети, я вижу URL как 'http://localhost: 56912 / api / Customers? _ = 1579068576376 '

Невозможно понять, откуда поступает это дополнительное значение'? _ = 1579068576376 '

Ниже приведен код jquery:

//#customers is the id of table and I am using datatable plug in over it

$("#customers").DataTable({
            ajax: {
                url: "/api/customers",
                dataSrc: "",
                columns: [
                    {
                        data: "name",
                        render: function (data, type, customer) {
                            return "<a href='Customers/Edit" + customer.id + "'>" + customer.name + "'</a>'"
                        }
                    },
                    {
                        data: "id",
                        render: function (data) {
                            return "<button  class='btn-link js-delete' data-customer-id="+ data+">Delete</button>"
                        }
                    }
                ]

            }
        });

Ниже указано API, который я пытаюсь назвать:

public IEnumerable<CustomerDto> GetCustomers()
{
    return _context.Customers.ToList().Select(Mapper.Map<Customers,CustomerDto>);
}
//Context is an instance of db from entity framework

Ответы [ 3 ]

3 голосов
/ 15 января 2020

Это метка времени (обычно) или другой уникальный номер для очистки кэша браузера.

Очистка кэша решает проблему кэширования браузера, используя уникальный идентификатор версии файла, чтобы сообщить браузеру, что доступна новая версия файла. Поэтому браузер не извлекает старый файл из кэша, а скорее отправляет запрос на исходный сервер для получения нового файла.

Он фактически гарантирует, что при получении запроса get браузер будет не считайте это кэшированным.

0 голосов
/ 18 января 2020

Большое спасибо. Это связано с тем, что по умолчанию значение кэширования равно false. Я добавил параметр cache: true, и проблема была решена. $ ("# Customers"). DataTable ({ajax: {url: "/ api / Customers", dataSr c: "", кеш: true, столбцы: ..... ...

0 голосов
/ 15 января 2020

Похоже, что это отметка времени - я sh, миллисекунды прошли с 01.01.1970 00:00:00 до определенного c момента времени. Очень похоже на отметку времени UNIX, но с большей точностью.

См. эту скрипку : это показывает, что отметка времени равна 1/15/2020 6:09:36 AM (UTC).

Предположительно, это текущая метка времени для взлома кэша (см. ответ Athanas ios Kataras). На самом деле я не нашел ни одного источника, который подтверждает, что это добавлено ASP. NET MVC.

Редактировать

Вы используете плагин DataTable jQuery с опцией ajax, который

передается jQuery . ajax [ см. Здесь ]

В jQuery.ajax по очереди

[Отключение кэширования] работает путем добавления _={timestamp} к ПОЛУЧИТЬ параметры. [ см. jQuery документацию под параметром кэша]

Это объясняет добавляемую метку времени, хотя я не совсем понимаю почему кэширование отключено, поскольку значение по умолчанию должно быть true (т.е. кэширование включено ) в соответствии с документацией jQuery.

Редактировать 2

Потому что DataTables устанавливает параметр анти-кэширования jQuery. [ см. Здесь ]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...