我在 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
alert("hello");
$('#request_mobile").val('hi there');
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/