gpt4 book ai didi

javascript - jQuery Ajax 请求中 url 参数中的函数

转载 作者:行者123 更新时间:2023-12-01 01:59:07 26 4
gpt4 key购买 nike

我正在尝试运行一个函数来生成 jQuery ajax POST 请求中使用的 url,但似乎 url 参数只能是字符串...这是代码,注意ajax调用的url参数中的function:

//chained code upstairs...
.bind("create.jstree", function (e, data) {
$.ajax({
//"/project/<%= locals.project.handle %>/mkdir/<%=locals.filepath%>",
//"http://127.0.0.1/project/datanotes/mkdir/lolada/lolada_subdir",
type : "POST",
url : function(data){
var url = "<%= locals.request.db.baseURI + "/project/" + locals.project.handle + "/mkdir" %>";
if(data.rslt.obj.attr("id") != null){
url = url + "/" + data.rslt.obj.attr("id");
}
return url;
},
data : {
"title" : data.rslt.name,
"type" : data.rslt.obj.attr("rel")
},
success: function (r) {
if(r.status) {
$(data.rslt.obj).attr("id", "node_" + r.id);
}
else {
$.jstree.rollback(data.rlbk);
}
},
failure : function (r) {
$.jstree.rollback(data.rlbk);
}
});
})

url 参数被解释为字符串且不进行计算,因为调试日志如下:

GET /project/datanotes/browse/children 200 369ms - 2b
POST /project/function%20(data)%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20url%20=%20%22http://127.0.0.1:3000/project/datanotes/mkdir%22;%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if(data.rslt.obj.attr(%22id%22)%20!=%20null)%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20url%20=%20url%20+%20%22/%22%20+%20data.rslt.obj.attr(%22id%22);%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20url;%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D 404 5ms

你能帮我解决这个问题吗?谢谢!

最佳答案

您正在传递函数,而不是执行它并传递结果。您可以使用立即调用的函数:

url: (function () {
var url = "<%= locals.request.db.baseURI + " / project / " + locals.project.handle + " / mkdir " %>";

if (data.rslt.obj.attr("id") != null) {
url = url + "/" + data.rslt.obj.attr("id");
}

return url;
})(),

简单演示:http://jsfiddle.net/yS6rn/

关于javascript - jQuery Ajax 请求中 url 参数中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19029083/

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