【问题标题】:How to send post request to rails action如何将发布请求发送到 Rails 操作
【发布时间】:2019-04-19 17:23:27
【问题描述】:

我是 Rails 新手,所以我不知道这是否是最佳做法。我正在尝试使用 ajax 将用户输入从索引视图发送到索引操作,然后使用用户输入更新视图。我没有尝试将此输入保存在数据库中。

@url 总是返回 nil。

注意:我尝试创建自定义操作但没有成功,因为它需要模板。

提前致谢:)

索引操作

def index
    @url = params[:option]
  end

索引视图

<input type="text" id="exampleFormControlInput1">

<p id="resp-result"><%= @url %></p>


<script type="text/javascript">
        $(".button").click(function(event){
             var userinput = document.getElementById("form").value;
             console.log(userinput);
            event.preventDefault();
            $.ajax({
                url:"/responses/",
                type: "POST",
                data: {option: userinput},
                dataType: "text",
                success:function(result){
                  alert("success" + result);

                },
                error:function(result){
                   alert("error" + result);
                }
            });
        });
</script>

【问题讨论】:

  • 既然你是在发出ajax请求,你需要用json来响应。将值设置为 @url 只会使其对您的视图可用,这听起来不像您想要的。
  • @vich - 100% 同意仅设置 @url 值可能还不够。但是,我认为说“既然您正在发出 ajax 请求,您需要使用 json 响应”,我认为这不是 100% 准确的。我一直在做 ajax 请求,接收 html 作为他们的响应。可能我理解错了。
  • @jvillian 你是对的,我只是根据这个问题进行概括。你当然不需要用 json 回应,但从问题的声音来看,这可能是 OP 正在寻找的。​​span>
  • @vich @jvillian 感谢您的回复。对不起,我不明白你。但我尝试将索引操作更改为 ``` @url = params[:option].to_json ``` 但仍然在索引视图中得到 null
  • 我建议您通读Rails documentation on ajax。简而言之,你想要render json: params[:option] 之类的东西。关于这个主题有很多东西要学习,但我会留在那个地方。

标签: javascript ruby-on-rails ajax


【解决方案1】:

Yuna 你需要以 json 格式输出响应。让我们假设您的 ajax 脚本可以正确地将数据发送到 ruby​​ on rails 后端。

试试这个

在阿贾克斯 不是这个

  url:"/responses/",

但是

  url:"/responses.json",

然后你就可以得到结果了

alert("success" + result.myurl);

您可以将 myurl 作为 json 响应的一部分

终于试试这个

def index
    respond_to do |format|
        #@url = params[:option]
        @url='nancy more url'
        format.json do
          render json: {myurl: @url}.to_json
        end
    end
end

【讨论】:

    猜你喜欢
    • 2020-04-25
    • 2019-05-17
    • 2019-10-28
    • 2016-09-04
    • 2011-06-13
    • 2017-05-01
    • 2016-05-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多