jquery在通过ajax发送时将数据排除在对象之外
jquery exclude data out of object when sending via ajax
我通过ajax发送post数据,该数据如下所示:
var cardProperties = {
container: $("#cardContainer"),
elementsWrapper: $("#cardElementsWrapperBorder"),
size: 0, //0 -> (90x50mm <-> 510px x 283px), 1-> (85x55mm <-> 482px x 312px)
position: "h", //default horizontal
bgImagesPath: "media/images/designs/backgrounds/", //path to card bg images
floatingImagesPath: "media/images/designs/floating-images/", //path to card bg images
imagesPerPage: 8,
innerBorderMargins: 40, //this should be divided by 2 to get the actual margin
currentCardSide: 1
};
基本上有一些常见的数据,但像container
或elementWrapper
这样的字段可能包含了很多关于该对象及其子对象的信息,所以这导致了我非常丑陋的错误Uncaught RangeError: Maximum call stack size exceeded
,因为我不需要这两个字段,我如何在不删除任何信息的情况下将其从对象中排除,因为我稍后在js
脚本中需要这些信息。
编辑
这里还有我的ajax
代码:
$.post("server.php", {data: cardProperties},
function(response){
}
);
删除函数和对象,只会得到那些字符串和数字:
var propertiesForAjax = (function(obj){
var out = {};
for(var i in obj){
if(typeof obj[i]==='object' || typeof obj[i]==='function') continue;
out[i] = obj[i];
}
})(cardProperties);
或者没有自动执行功能:
function transformProps(obj){
var out = {};
for(var i in obj){
if(typeof obj[i]==='function' || typeof obj[i]==='object') continue;
out[i] = obj[i];
}
}
var toPost = transformProps(cardProperties);
注:
- 如果你正在转换一个对象,你需要尝试一些稍微不同的东西(例如,对照有效对象列表进行检查)
- 如果你不知道你在转换什么,你可能不应该使用这个,因为你可能会有意外的输出/丢失东西
相关文章:
- 用程序搜索JQuery数据表中的文本
- 要求输入在数据列表中
- 正在将数据主题添加到所有项目
- 函数参数中的数据与指定变量之间的任何性能差异
- 在VanillaJS中模拟模型双向数据绑定
- CSS-如何定位内容数据标题
- 使用电话间隙在Android应用程序中显示SQL Lite的数据
- 无法在数据endVal中设置值=“”;{{ucount}}”;使用Angular JS的CountUp
- 序列化数据属性中对象的最可靠方法
- 如何将JSON数据导入我的ejs模板
- 不显示带有本地json文件数据的谷歌地图脚本
- jQuery按数据值排除元素
- jquery在通过ajax发送时将数据排除在对象之外
- 如果用户在收到提示后将任何信息留空,我如何从 Javascript 的输出 (window.alert) 中排除该数据
- 引导数据表从导出中排除某些可见列
- 导出数据表时排除/隐藏某些列
- KnockoutJS:在将数据传递给服务器之前排除计算的可观察对象
- 我如何从微风的元数据收集排除表/实体
- Angular数据问题——不知道如何排除
- 使用jsPDF AutoTable插件将数据表转换为pdf时,出现了排除额外页面