簡體   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