gpt4 book ai didi

javascript - 避免对 post 方法进行硬编码解决方案

转载 作者:行者123 更新时间:2023-11-30 18:41:23 25 4
gpt4 key购买 nike

我有这个post方法

$.post("/abc/export.action",
{
sessiontoken: sessiontoken,
exportType: "xls",
param1:compareData,
param2:comparePatchData},
function(resdata)
{
alert(resdata);
}
);

我想要一些最佳实践,这样我就可以使用枚举或数组来存储我所有的发布参数并在发布时使用它,这是一种可以避免硬编码 sessiontoken 的方法,param1 等等。有什么解决办法?

编辑

有时我可能需要更改 params 的名称,所以我必须在所有有 post 方法的地方进行编辑,而不是如果所有参数都在那里在某些枚举或数组中,只更改一个地方会容易得多。

最佳答案

如果您希望对象中的标签基于其他变量,您可以使用

  var paramLabels = {"session": "sessionToken", "type": "exportType", ...}
var paramValues = {};
paramValues[paramLabels.session] = sessionToken;
paramValues[paramLabels.type] = "xls"
...

$.post(/"abc/export.action", paramValues, function(resdata) { alert(resdata);});

当后端开发人员喜欢每五分钟更改一次参数名称时,我真的看不到这种方法的好处。

另一种处理方法是创建工厂方法或构建器

  function createParams(session, type, ...) {
return { "sessionToken": session, "exportType": type, ...) }
}

var params = createParams(sessionToken, "xls", ...);

  var Parameters = function() {  
this.session = function(session) { this.session = session; return this;}
this.type = function(type) { this.type = type; return this;}
...
this.build = function() {
var params = {}
!this.session || params.sessionToken = this.session;
!this.type || params.exportType = this.type;
...
return params;

}
}

var params = new Parameters().session(sessionToken).type("xls")...build();

这两种方法都可以让您仅定义一次参数的具体名称。当需要不同的参数集时,后者可能更容易重用。

关于javascript - 避免对 post 方法进行硬编码解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6772664/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com