gpt4 book ai didi

javascript - 从 ajax 调用将参数传递到 Rails 后端

转载 作者:行者123 更新时间:2023-11-28 06:35:05 25 4
gpt4 key购买 nike

我正在尝试将 API 路由传递给 Rails,以便服务器而不是客户端执行调用。当我尝试执行此操作时,出现 404 not found。当我将此路由传递给该方法时,它可以从控制台中找到。但不是来自 ajax 调用。这是我的 Controller 方法:

    def identification
@link = params[:link]
@response = MotorClient.new.response_from_path(@link)
render json: @response
end

这是我的路线:

    get '/identification/:link', to: 'vehicles#identification', on: :collection

这是我的ajax:

    handleRoute: function (e) {
this.handleChange(e);
e.preventDefault();
var options = e.target.options;
var route = "";
for (var i = 0, l = options.length; i < l; i++) {
if (options[i].selected) {
route = (options[i].dataset.route);
console.log(route)
$.ajax({
type: 'get',
url: '/vehicles/identification/',
dataType: 'json',
data: {"link":encodeURIComponent(route)},
success: function (data) {
this.props.getMakes(data);
}.bind(this),
})
}
}
},

当我console.log路线时,我得到正确的字符串,如“/v1/Information/YMME/Years/2012/Makes/56/Models”,就像我从rails控制台所说的那样,它可以工作,但我不能正确获取参数这是我通过 ajax 调用时在 javascript 控制台上得到的结果:

     GET http://localhost:3000/vehicles/identification/?link=%252Fv1%252FInformation%252FYMME%252FYears%252F2012%252FMakes 404 (Not Found)

我做错了什么?

最佳答案

看起来您的路由期望 link 是 URL 路径中的一段,而不是查询字符串变量:/identification/:link -- 尝试删除/:link 或在向服务器发出 AJAX 回调时将编码的链接附加到 URL 末尾。

关于javascript - 从 ajax 调用将参数传递到 Rails 后端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34364331/

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