-4

我有 Java 网络应用程序和另一个 Rails 网络应用程序。我需要创建一个从 java 到 Rails 应用程序的 jquery ajax 请求。这个怎么做。

我在jquery中试过这个

  $.ajax({
            type: "POST",           
            url:"someurl",              
            cache:false,
            success: function(data) {
                //alert here
                }

如何对来自 rails 的这个 ajax 请求做出一些响应?上面的代码正确吗?

在 Rails 中,

def index
   @var1 = "myname"
   respond_to do |format|
    format.js{}
   end
end

在 index.js.erb 中,

 alert(@var1);

在控制台中,

渲染 index.js.erb (0.2ms) 在 26ms 内完成 200 OK (Views: 6.2ms | ActiveRecord: 0.1ms)

4

4 回答 4

1

通常你可以在 jquery post 中做到这一点。

例如:-

$.post( yourURL, {data:data}, function(response){});

yourURL 将是 url,它应该是通过 rake 路由检查的 rails 应用程序中任何控制器方法的有效 url。

然后您可以在控制器中创建操作。假设您要发布到索引控制器的“your_method”。

action 应该以 js 响应。例如:-

在索引控制器中定义

def your_method

   #your code here

   respond_to do |format|
     format.js{}
   end
end

制作一个动作的 js.erb 文件。从 ajax 正确发布到方法后,它将提供一些响应。在 jquery post 的响应值中捕获它。并进行必要的更改。

希望这会帮助你。

于 2013-07-03T11:30:52.150 回答
1

问题是,Ajax 不适用于跨域。Java 托管在一个域中,而 Rails 托管在另一个域中……这就是我的问题。

我现在在 java 端处理 Ajax。工作正常。

于 2013-07-21T03:11:09.873 回答
1

我想也许你应该在你的 JQuery ajax 中添加数据类型选项。这取决于你的rails响应是什么

dataType: 'script', dataType: 'json' or dataType: 'text' ...
于 2018-01-05T10:01:31.980 回答
0

例如,假设您的模型名称是 Post,并且您在 Rails 中调用 post 方法,它会是这样的。

        $('#Button').on('change', function(event) {
          var selected_resource_id = $(this).val();
          $.ajax({ 
           type: 'POST', 
           url: "<%= post_path %>",
           data: { id: selected_resource_id }, 
           success: function (data) {  
            alert("Ajax success");
           }
          });
        });
于 2018-01-05T06:14:19.163 回答