javascript - 如何将 ajax 调用中的函数从 JQuery 传递到 Node.JS 服务器
问题描述
这是我的代码
let url = "/blabla";
let ajax_options = {
data:{
params_list:{
sortFunction: (x, y) => parseFloat(x) - parseFloat(y);
}
}
};
$.ajax(url,ajax_options).then((res) => {
//do something
});
但是,当我检查浏览器尝试加载的实际 GET url 时,我得到:
http://localhost/blabla?params_list[sortFunction]=NaN
我应该如何编写代码以使其正确传递函数定义?
解决方案
保存对变量的函数引用并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 方式发送,则不需要
推荐阅读
- html - 有没有办法让css考虑svg占用多少空间
- windows - 带有 LF 行结尾的 Git 签出文件
- javascript - 无法从 axios GET 请求中检索数据
- swift - SwiftLint:如何为具有警告和错误配置的规则配置规则严重性
- authentication - Azure Batch 任务与 Azure REST API 的集成
- wordpress - 尽管我已在阅读页面中选择,但无法在 Wordpress 中创建 Elementor 帖子页面
- java - JDBC类型没有方言映射:2003,但已注册
- r - 有条件地合并行
- python - Python将Excel图形导入PDF文件
- jolt - 简单的 JOLT 转换。在此处添加一层并粘贴部分属性