【问题标题】:Pass JavaScript variable in URL in Rails 4 application so I can use it in controller?在 Rails 4 应用程序的 URL 中传递 JavaScript 变量,以便我可以在控制器中使用它?
【发布时间】:2016-12-12 05:52:27
【问题描述】:

我想在 URL 中传递一个 JavaScript 变量的值,然后 通过访问它在我的 Rails 4 应用程序控制器中使用该值 param[:my_variable]。我尝试了这里建议的各种方法,但对我没有任何效果,我无法将我的 JavaScript 变量传递给 URL 并在控制器中访问它。我是 Rails 新手。

如果你能建议我一个解决方法,那将是一个很大的帮助,我提供了我尝试过的代码,这对我来说也很有意义,但它不起作用:

<script>
    var content = 'something'; 
var url = '/index/view? 
message='+encodeURIComponent(content); 
new Ajax.Request(url, 
{ asynchronous:true, evalScripts:true, method:'get', 
onComplete: function(t) { // do something
    alert('done'); 
 } 
});
</script>

【问题讨论】:

  • 你的ajax请求发送到服务器了吗?检查您的浏览器控制台。可能是错误的ajax url。
  • 它说“Uncaught SyntaxError: Invalid or unexpected token” var url= '/index/view?view' 我不明白到底是什么错误
  • 第 47 行的代码和周围的上下文看起来如何?你能发布整个堆栈跟踪吗?
  • @aashi0001 你想用这个 js 完成什么?另外,您获得无效令牌的原因是因为它希望您的应用程序的标头中有一个令牌来验证传入的数据,而不是来自恶意尝试执行某些跨脚本的人。
  • 您的示例在 url 中有一个新行,这是您在此站点上的格式设置错误吗?如果没有,请删除该新行。

标签: javascript jquery ruby-on-rails ruby ruby-on-rails-4


【解决方案1】:

根据您能够作为用户输入信息进行搜索的要求,我建议您使用 js 库。这些 js 库可能有一个某人创建的 gem,可以帮助您通过这种方式进行搜索。

这两个视频很好地展示了实时搜索

【讨论】:

  • 感谢您的回答,但现在请您帮我将 JavaScript 变量传递给 rails 控制器,我真的需要帮助!
【解决方案2】:

正确的 ajax 语法是

var url = '/index/view?' 
$.ajax({
      url: url,
      type: 'get',
      data: {your_js_variable: value},
      success:function(data){
          if(data.status == 'true'){
             // do as you like
          }
          else{
              // do as you like
          }
      }
  });

然后在您的控制器中,您可以获得params[:your_js_variable] 之类的参数。

我跳过了脚本标签。

希望有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-28
    • 2014-06-01
    • 1970-01-01
    相关资源
    最近更新 更多