GraphQL получает IP-адрес пользователя [дубликат]

Самое простое решение - создать функцию JavaScript и вызвать его для обратного вызова Ajax success.

function callServerAsync(){
    $.ajax({
        url: '...',
        success: function(response) {

            successCallback(response);
        }
    });
}

function successCallback(responseObj){
    // Do something like read the response and show data
    alert(JSON.stringify(responseObj)); // Only applicable to JSON response
}

function foo(callback) {

    $.ajax({
        url: '...',
        success: function(response) {
           return callback(null, response);
        }
    });
}

var result = foo(function(err, result){
          if (!err)
           console.log(result);    
}); 
49
задан tereško 6 April 2014 в 09:06
поделиться

3 ответа

Решение

@RequestMapping(value = "processing", method = RequestMethod.GET)
public @ResponseBody ProcessResponse processData(@RequestParam("workflow") final String workflow,
    @RequestParam("conf") final String value, @RequestParam("dc") final String dc, HttpServletRequest request) {

        System.out.println(workflow);
        System.out.println(value);
        System.out.println(dc);
        System.out.println(request.getRemoteAddr());
        // some other code
    }

Добавить HttpServletRequest request в определение вашего метода, а затем использовать сервлет API

Spring Documentation здесь , указанный в

15.3.2.3 Поддерживаемые аргументы метода обработчика и возвращаемые типы

Handler methods that are annotated with @RequestMapping can have very flexible signatures.
Most of them can be used in arbitrary order (see below for more details).

Request or response objects (Servlet API). Choose any specific request or response type,
for example ServletRequest or HttpServletRequest
87
ответ дан Koitoer 5 September 2018 в 10:33
поделиться

Вы можете получить IP-адрес статически из RequestContextHolder, как показано ниже:

HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes())
        .getRequest();

String ip = request.getRemoteAddr();
3
ответ дан Radouane ROUFID 5 September 2018 в 10:33
поделиться

Я опаздываю здесь, но это может помочь кому-то найти ответ. Обычно работает servletRequest.getRemoteAddr().

Во многих случаях пользователи вашего приложения могут получать доступ к вашему веб-серверу через прокси-сервер или, возможно, ваше приложение находится за балансировщиком нагрузки.

Таким образом, вы должны получить доступ к X- Forwarded-For http в таком случае, чтобы получить IP-адрес пользователя.

например String ipAddress = request.getHeader("X-FORWARDED-FOR");

Надеюсь, это поможет.

71
ответ дан sunitkatkar 5 September 2018 в 10:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: