gpt4 book ai didi

javascript - Rails 4 中不执行 Ajax 响应

转载 作者:行者123 更新时间:2023-12-03 10:32:41 25 4
gpt4 key购买 nike

我在 Rails 应用程序中使用 ajax。在我的应用程序 js 中,我有

$('#request_name').on('focusout', function () {
var clientName = $(this).val();
$.ajax({
url: "/requests/autofill/"+clientName,
type: "GET",
contentType: 'text/javascript'
});

所以我发送ajax请求来请求 Controller 操作自动填充。

自动填充方法:

def autofill
@client = Client.where("name=?",params[:name]).take
respond_to do |format|
format.js
format.html
end
end
在我的 autofill.js.erb 文件中,我有:

alert("hello");
$('#request_mobile").val('hi there');
(警报仅用于测试)我想要做的是使用 autofill.js.erb 文件中的一些值更新 #request_mobile id 字段。问题是我的 autofill.js.erb 代码没有被执行。这是 firebag 中显示的响应:

alert("hello");
$('#request_mobile").val('hi there');

但是没有任何反应,甚至警报也没有启动。我不知道我做错了什么?

最佳答案

我认为我不完全理解这里出了什么问题,但我可以找到一些方法来更接近地理解问题。首先,我相信你使用$.get而不是$.ajax会更好。只是设置起来稍微简单一些。

第二件事 - 您实际上不需要设置中的 contentType 参数,因为它与返回数据的类型无关,而是与您在设置中发送的数据类型有关要求。响应数据类型在 dataType 参数中设置。

第三件事,即使dataType设置为script,我也不确定它会被执行,所以最好的方法是手动执行,如果你'我们 100% 确保您的安全。

最后,这应该是有效的。

$('#request_name').on('focusout', function () {
var clientName = $(this).val();
$.get("/requests/autofill/"+clientName, function(data) {
eval(data);
}
);

关于javascript - Rails 4 中不执行 Ajax 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29140243/

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