Когда кеш false в множестве в ajax, он добавляет в запрос какое-то значение, что это такое - PullRequest
0 голосов
/ 13 июня 2018

Я использую небольшой код Ajax, и мой код работает. В моем коде нет ошибок, но когда я устанавливаю кеш false в моем ajax, это добавляет какое-то значение в запрос. Я хочу знать, каково значение и его назначение.

Мой код

function validate() {
    var user = $('#user').val();
    var num =  $('#num').val();
    var mobile=  $('#otp').val();
    $.ajax({
        type: "GET",
        url:  "/validateOtp",
        data: {user: user , num: num , mobile: mobile},
        dataType: 'text',
        cache: false,
        timeout: 600000,
        success : function(response) {
                alert( response );
            },
            error : function(xhr, status, error) {
                alert(xhr.responseText);
            }
    });
}

он генерирует такой запрос в браузере

http://localhost:8080/validateOtp?user=1234&num=12345&otp=1234&_=1528862398631

вы можете увидеть добавленную стоимость с помощью ajax & _ = 1528862398631

и мой бэкэнд-код в Spring MVC

@Controller
@RequestMapping("/validateOtp")
public class ValidateOTPAjaxController {
private final Logger logger = 
 LogManager.getLogger(this.getClass().getSimpleName());

@Autowired
private OTPService otpService;

@RequestMapping(method = RequestMethod.GET, produces = "application/json;charset=UTF-8")
public String getAllDistrict(@RequestParam(value = "user") String user,
        @RequestParam(value = "num") String num, @RequestParam(value = "mobile") String mobile) {
    logger.debug(user);
    logger.debug(num);
    logger.debug(mobile);
    return "OK";
}

1 Ответ

0 голосов
/ 13 июня 2018

Если для свойства cache установлено значение false, jQuery добавит метку времени к URL, чтобы браузер не кэшировал ее (поскольку URL уникален для каждого запроса. Подробности см. В документации: http://api.jquery.com/jQuery.ajax/

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

@Controller
public class ValidateOTPAjaxController {
   private final Logger logger = 
   LogManager.getLogger(this.getClass().getSimpleName());

   @Autowired
   private OTPService otpService;

   @RequestMapping(value = "/validateOtp", method = RequestMethod.GET)
   public String getAllDistrict(@RequestParam("user") String user,
        @RequestParam("num") String num, @RequestParam("mobile") String mobile) {
      logger.debug(user);
      logger.debug(num);
      logger.debug(mobile);
      return "OK";
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...