gpt4 book ai didi

javascript - 如何从 Rails Controller 中的 XMLHttpRequest 中提取数据

转载 作者:行者123 更新时间:2023-11-30 05:43:16 25 4
gpt4 key购买 nike

以下 JavaScript 将带有参数 recipe_numXMLHttpRequest 发送到我的 Rails 服务器,我如何从 Controller 中提取数据?我试过 params[:recipe_num]session[:recipe_num],都不起作用。

function getRules(recipe_num){
var request = new XMLHttpRequest;
request.open("POST", "/path/rules_json?format=json", true);
var token = $("meta[name='csrf-token']").attr("content");
request.setRequestHeader("X-CSRF-Token", token);
request.onreadystatechange = function() {
if(request.readyState == request.DONE){
buildForm(JSON.parse(request.responseText));
}
};
request.send("recipe_num=" + recipe_num);
};

最佳答案

对于 Rails 5.1.2,

您可以通过request.raw_post获取原始数据。如果你想将它用作params,你应该添加Content-type header。

# for string
request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
request.send("prev_id="+pid+"&next_id="+nid);
# for json string
request.setRequestHeader("Content-type", "application/json");
request.send(JSON.stringify({ prev_id: pid }));

引用文件 action_dispatch/http/parameters.rb

DEFAULT_PARSERS = {
Mime[:json].symbol => -> (raw_post) {
data = ActiveSupport::JSON.decode(raw_post)
data.is_a?(Hash) ? data : { _json: data }
}
}

关于javascript - 如何从 Rails Controller 中的 XMLHttpRequest 中提取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19534741/

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