gpt4 book ai didi

javascript - 如何将ajax数据发送到rails 3. jQuery正在转义字符串

转载 作者:行者123 更新时间:2023-11-28 01:44:58 25 4
gpt4 key购买 nike

我正在尝试这样做:

$.ajax({
type: "PUT",
url: /example,
data: {_method: "put", "foo_model[bar_attribute]": value_var }
});

并且按预期工作,但我需要动态构造foo_model[bar_attribute]部分。

我正在尝试:

var model = "foo_model";
var attribute = "foo_attribute";
var param = model + "[" + attribute + "]";
var dataStr = '{_method: "put",' + param + ': ' + value + '}';

再一次:

$.ajax({
type: "PUT",
url: /example,
data: dataStr
});

但是它不起作用,jQuery 正在转义引号并在各处添加大括号...

有没有更好的方法来做到这一点?我还尝试了其他方法,例如制作 json 对象,将 processData 设置为 false,正如我在另一篇文章中看到的那样,但似乎没有任何效果......请求总是被转换和转义。也尝试过 unescape 但只有当我按字面意思写时它才有效:

数据:{_method:“put”,“foo_model[bar_attribute]”:value_var}

谢谢。

最佳答案

你可以使用这样的东西(经过测试和工作)

var model = "foo_model";
var attribute = "foo_attribute";
var param = model + "[" + attribute + "]";
var value = "test";

$.ajax({
url: "http://fiddle.jshell.net/pu6ME/show/",
type: "GET",
data: param + '=' + value
}).done(function() {
alert("Works!");
});

通过使用param + '=' + value 解决方法,您实际上可以使用动态名称!我相信使用普通的 key : value 语法是不可能的,但在这个例子中并不重要。

无需定义数据字符串。

JSFiddle示例(使用 Control/Cmd + I 查看网络事件,您会发现它有效)

关于javascript - 如何将ajax数据发送到rails 3. jQuery正在转义字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20435491/

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