2015-12-21 103 views
2

我正在创建一个带有轨道的PV计数器应用程序,为了实现这一点,我想在另一个站点的HTML文件中放置一个jQuery脚本,以将有关站点URL的信息传递给我的rails应用程序。最后,我想在网站访问后将网址保存在数据库中。 到目前为止,我正在试图让jQuery脚本发送数据到rails,并且我写了这个。我如何发送目标网站的网址?jQuery Ajax发送轨道的URL

<script src="jquery.xdomainajax.js"></script> 
    <script> 
    $(function(){ 
    $.ajax({ 
     url: 'http://localhost:3000/', 
     type: "GET", 
     data: url of the site 
     }) 
    }); 
    </script> 

回答

2

您可使用以往任何时候都适合你window.location.hrefwindow.location.origin,并传递它的数据字段。
修订

<script src="https://code.jquery.com/jquery-1.11.3.min.js"></script> 
<script> 
$(function(){ 
//Passing data to rails controller, you can do it like this: 
var webURL = {fullURL: window.location.href, 
       domain: window.location.origin 
       };//for getting complete url,or window.location.origin for domain alone. 
function recordURL(){ 
$.ajax({ 
    url: 'http://localhost:3000/viewcounter/counter', 
    type: "GET", 
    dataType: 'json' 
    data: webURL, 
    success: function(data){ 
       console.log('success '+data); 
       }, 
       error: function(data){ 
       console.log('error '+data); 
       } 
    }); 
    } 
    recordURL(); 
}); 
</script> 

viewcounter_controller.rb,请更改函数名高清柜台,如计数器在路由定义,而不是计数

def counter 
    url = params[:fullURL] 
    Viewcounter.create(site_url: url) 
    render text:'Ok'.to_json 
    end 

最后删除jquery migrate脚本,因为它不是必需的。

+0

非常感谢! 现在我需要弄清楚如何接收轨道上的信息并创建动作或方法...无论如何感谢。 – Suda

+0

非常感谢您的补充信息。 现在我的控制器叫做viewcounter就是这样的。 ''' DEF计数 URL =参数[:fullURL] Viewcounter.create。(SITE_URL:URL) end' 和我还允许跨域访问如下(application.rb中) 'config.action_dispatch .default_headers.merge!({0}访问控制 - 允许源'=>'*', '访问控制请求方法'=>'*' })' 另外我创建了一个HTML文件写上面的jQuery代码,并在浏览器中打开。我认为,这应该在DB中做记录,但事实并非如此。 为什么?对于持续的问题,我很抱歉。 – Suda

+0

我在浏览器控制台中出现了一些错误: 'GET file://code.jquery.com/jquery-1.11.3.min.js net :: ERR_FILE_NOT_FOUND' 'GET file://code.jquery.com /jquery-migrate-1.2.1.min.js网:: ERR_FILE_NOT_FOUND' 'GET文件:///Users/name/Desktop/jquery.xdomainajax.js网:: ERR_FILE_NOT_FOUND' '未捕获的ReferenceError:$是没有定义(匿名函数)@ practice.html:12' 似乎jQuery没有被调用? 我没有得到任何轨道错误。我只是想知道,我必须使路由像本地主机:3000/viewcounter /计数? 是的,服务器在本地运行,webrick。这会是一个问题吗?谢谢。 – Suda