2012-12-04 54 views
0

我需要將數據從fancybox iframe傳遞到我的django視圖使用後。 我將iframe標題設置爲用戶可點擊的「href」鏈接。jquery fancybox 2 iframe通過帖子發送數據給父母

這是對的fancybox代碼:

$(".fancybox-company").fancybox({ 
    width  : '75%', 
    height  : '75%', 
    autoSize : false, 
    closeClick : false, 
    fitToView : false, 
    openEffect : 'none', 
    closeEffect : 'none', 
    type : 'iframe', 
    beforeLoad: function() { 
     var id = $(this.element).data('company-id'); 
     this.title = "<a href=\"\" id=company-iframe>Add to your list</a>"; 
    } 
}); 

,這是在click事件偵聽代碼:

$(".company-iframe").on('click', function (event) { 

    event.preventDefault(); 

    var id = event.target.href; 

    $.post("/company/selection", { id : id }, function (json) { 

     // ... 

    }); 

,這是不會被調用,我需要通過單擊事件從iframe到父級,並將公司ID作爲輸入。

我失蹤了什麼?

10x

回答

0

我認爲你缺少csrf標記。這是一個django mechanism預防跨站點請求僞造。如果您的中間件類中啓用了csrf而不是每次發佈請求,都必須在數據中提供'csrfmiddlewaretoken'。您可以使用{%csrf_token%}標記從Cookie或右邊的模板訪問它。

你實現這個標記在你的模板後,您需要修改js函數像

$(".company-iframe").on('click', function (event) { 

    event.preventDefault(); 

    var csrfmiddlewaretoken = $('input[name=\"csrfmiddlewaretoken\"]').val(); 
    var id = event.target.href; 

    $.post("/company/selection", 
      { id : id , csrfmiddlewaretoken: csrfmiddlewaretoken}, 
      function (json) { 

     // ... 

    }); 
相關問題