繁体   English   中英

数据表-将Ajax数据源(sAjaxSource)与多个表和动态参数一起使用

[英]Datatables - Using Ajax datasource (sAjaxSource) with multiple tables and dynamic argument

我有两个数据表,试图通过对烧瓶API的GET请求填充数据。 我的数据源URL是localhost:5000 / data,但是我无法获取数据表来显示数据。 创建静态.txt文件时,可以获取数据。 我看了看我的GET请求,它看起来像是从jQuery附加了某种事件ID(我对此很陌生...)。 我最终希望能够将自定义参数传递给GET请求,以便根据用户在第一个表中单击的行来过滤第二个表。

我已经对aaData和sAjaxSource进行了试验,但我都无法使用。

我的JSON对象是这种形式:

{
  "items": [
    {
      "column1": "Foo", 
      "column2": "Bar", 
      "column3": "1.54"
    }, 
    {
      "column1": "Blah", 
      "column2": "Tah", 
      "column3": "1.54"
    }
  ]
}

表1-我使用的是静态.txt文件,此表显示正常

$(document).ready(function() {
    $('#table1').dataTable( {
        "bProcessing": true,
        "sAjaxSource": "/thisWorks.txt",
        "sAjaxDataProp": "item",
        "aoColumns": [
        { 
            "mData": "column1" 
        },
        { 
            "mData": "column2" 
        },
        { 
            "mData": "column3" 
        }
        ]
    } );


    $('#example tbody').on('click', 'tr', function () {
        var clickId = $('td', this).eq(0).text();
    } );

表2-无法使用此功能

$('#table2').dataTable( {
    "bProcessing": true,
    "sAjaxSource": "http://localhost:5000/data?column1=1234",
    "sAjaxDataProp": "items",
    "aoColumns": [
    { "mData": "column1" },
    { "mData": "column2" },
    { "mData": "column3" }
    ]
} );

当我在chrome控制台中查看时,我看到第二个Ajax请求被解释为:

http://localhost:5000/data?column1=1234&_1412145757890

最终,我希望将clickId的值从我的第一个表传递到第二个表中的Ajax源,以便对您的指导有所帮助。

谢谢!

https://softwareengineering.stackexchange.com/questions/216605/how-do-web-servers-enforce-the-same-origin-policy

相同的原始策略是完全基于客户端的限制,并且主要是为了保护用户而不是服务而设计的。 所有或大多数浏览器都包含一个命令行开关或配置选项以将其关闭。 SOP就像汽车上的安全带:它们保护汽车上的骑手,但任何人都可以自由选择不使用它们。 当然,不要指望一个人的安全带阻止他们下车并攻击您(或访问您的Web服务)。

假设我编写了一个访问您的Web服务的程序。 这只是一个发送包含HTTP请求的TCP消息的程序。 您正在请求一种服务器端机制,以区分程序发出的请求(可以发送任何内容)和浏览器发出的请求(从允许的来源加载页面)。 根本无法做到; 我的程序始终可以发送与网页形成的请求相同的请求。

发明了同源策略,因为它阻止一个网站的代码访问另一站点上受凭证限制的内容。 默认情况下,Ajax请求与目标站点授予的所有auth cookie一起发送。 例如,假设我不小心加载了http://evil.com/ ,从而发送了对http://mail.google.com/的请求。 如果没有SOP,并且我已登录Gmail,evil.com上的脚本可以看到我的收件箱。 如果evil.com上的网站要加载没有我的cookie的mail.google.com,则可以使用代理服务器; mail.google.com的公开内容不是秘密(但使用cookie进行访问时mail.google.com的内容是秘密)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM