Как узнать, что URL-адрес поступает из адресной строки браузера или при вызове ajax? - PullRequest
0 голосов
/ 14 июля 2020

У меня есть URL-запрос ниже:

https://myapp.com/funnyproject/tools/getLayers.ashx?search=true

И я могу вызвать его, напрямую введя его в адресную строку, или это можно сделать с помощью запроса ajax от клиента:

$.ajax({
    url: "tools/getLayers.ashx?search=true",
    headers: { "cache-control": "no-cache" },
    cache: false,
    success: function (data) {
        //do something
    }
});

Итак, вопрос в том, как я могу узнать, откуда он? Я пробовал использовать свойство HttpContext.Current.Request.UrlReferrer, но это бесполезно. Любой совет, пожалуйста!

1 Ответ

0 голосов
/ 14 июля 2020

Невозможно запретить пользователю совершать вызов ajax, который будет выглядеть как вызов браузера. Но для вызова по умолчанию, чтобы идентифицировать сделанные вызовы, вы можете использовать заголовок User-agent.

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent

Там вы можете получить не только браузер, но и Тип и версия, а также ОС и другая информация.

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36

...