Как передать функцию в вызове ajax из JQuery на сервер Node.JS - PullRequest
1 голос
/ 18 марта 2019

Вот мой код

let url = "/blabla";
let ajax_options = {
    data:{
        params_list:{
            sortFunction: (x, y) => parseFloat(x) - parseFloat(y);
        }
    }
};
$.ajax(url,ajax_options).then((res) => {
    //do something
});

Но когда я проверяю фактический URL-адрес GET, который пытался загрузить мой браузер, я получаю:

http://localhost/blabla?params_list[sortFunction]=NaN

Как мне написать код, чтобы он правильно передавал определение функции?

1 Ответ

0 голосов
/ 18 марта 2019

Сохраните ссылку на функцию в переменной и используйте Function#toString(), прежде чем она будет внутренне проанализирована $ .ajax

const fn = (x, y) => parseFloat(x) - parseFloat(y),
      url = 'https://httpbin.org/get';

let ajax_options = { 
  data: {
    params_list: {
      sortFunction: fn.toString()
    }
  }
};

$.ajax(url, ajax_options).then(({args, url}) => {
  console.log('Response data ::', args);      
  console.log('URL used ::', url);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

Примечание должно также использовать encodeURIComponent(), поскольку это GET. Не требуется, если вместо этого отправлено POST

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