2013-04-08 40 views
0

我實際上正在嘗試對我的項目中的團隊進行動態管理。這意味着例如用戶有3個按鈕。每個按鈕都會從顯示錶單的控制器中調用一個函數。CodeIgniter ajax動態表格

然而,形式出現時,該網址是奇怪的,當我按下提交。

function ajax_get(){ 

var uri_segment = "<?=$this->uri->segment(3);?>"; 

$('#editTeam').click(function (e) { 
    e.preventDefault(); 

    $.ajax({ 
     type : "GET", 
     async : false, 
     url : "<?=base_url().'ajax/team/get_editTeam/';?>"+uri_segment, 
     dataType : "html", 
     success : function(data){ 
      window.setTimeout(function() { 
       $('#divPage').html(data); 
      }, 300); 

     } 
    }); 
    return false; 
}); 

該功能顯示在一個div一個視圖,然後我有一個表格

function ajax_editTeam() 
{ 
$('form').submit(function(e){ 
    e.preventDefault(); 

    $.ajax({ 
     type : "POST", 
     async : false, 
     url : "www.google.fr", 
     data : $(this).serializeArray(), 
     dataType : 'json', 
     success : function(data) 
     { 

     } 
    }); 


    return false; 
}); 
} 

這種形式我還有一個AJAX調用保存現場並更新團隊信息。正如你可以看到我寫的「www.google.fr」作爲網址,但是當我提交的形式,它改變不了什麼

,我有螢火一個奇怪的網址。

這是螢火蟲控制檯: GET http://fresh-league.com/ajax/team/get_editTeam/30 200 OK 164ms
POST http://fresh-league.com/ajax/team/editTeamget_editTeam 404未找到354ms

能否請你告訴我,爲什麼我比www.google.fr另一個請求的URL?

感謝答案 馬特

回答

1

它是在瀏覽器上,因爲Same Origin Policy限制。

同源策略作出Ajax請求比所述源腳本被下載形式以外的域限制的瀏覽器。

有多種方法來克服這個

  1. 使用jsonp
    如果請求的資源支持JSONP,那麼你可以使用它,jQuery有built in support爲JSONP。利用JSONP,你需要傳遞一個請求參數callback=?並設置數據類型爲jsonp或使用getJSON請求JSON資源。

  2. 使用CORS

0

您的問題的答案,

這是正確的:url : "<?=base_url().'ajax/team/get_editTeam/';?>"+uri_segment

,這是不是:url : "www.google.fr",因爲你沒有調用任何功能時,您控制器, 嘗試給它一個像第一個Ajax調用的網址。

+0

嗨 的www.google.fr就是一個例子,我想我還會有一個類型的錯誤在我的控制檯,像401未經授權。 我不明白,爲什麼在第二個請求的URL參數不通過的jQuery 「讀」我一直有這個網址:http://fresh-league.com/ajax/team/editTeamget_editTeam代替 http://fresh-league.com/ajax/team/edit/30 – TLR 2013-04-08 16:06:23