2014-10-30 68 views
0

我試圖使用.load()函數調用控制器函數,但我得到一個錯誤可能是因爲'。'編碼。我做的調用是這樣的:使用jquery .load()函數獲取包含句點('。')的404錯誤

$("#main-content").load(
    url + "/" + encodeURIComponent(text1) + "/" + encodeURIComponent(text2) 
); 

一切順利時的text1以句點結束,除了:

var text1 = 'This causes error.'; 

的URL編碼,如:

http://localhost/index.php/controller/function/This%20causes%20error./Text2 

而且我在Chrome控制檯中收到404錯誤,所以我懷疑'。'正在破壞網址。

我一直在尋找很多帖子,如thisthis,但這些解決方案不適合我。我正在考慮創建一個函數來轉換'。'換成任何其他角色,然後在服務器上做相反的事情,但我更喜歡首先尋找更優雅的東西。

任何想法?由於

+1

這可能不是一個JS的問題,而是一個笨問題。看到,例如http://stackoverflow.com/questions/20201888/periods-not-allowed-in-codeigniter-uri – 2014-10-30 12:40:22

+0

是的,我看過那篇文章,但我嘗試了他們的建議,仍然有404。 – 2014-10-30 14:11:16

回答

1

嘗試使用AJAX POST方法

$.ajax({ 
     url: url+ + "/", 
     type: 'POST', 

     data: {data1:encodeURIComponent(text1),data2:encodeURIComponent(text2)}, 

     success: function (data, status) 
     { 
       $("#main-content").text(data) 

     } 
    }); 
}); 

在您的控制器接收文本1和文本作爲

$text1=$this->input->post("data1") 
$text1=$this->input->post("data2") 
+0

它成功了!我編輯了你的答案,爲'url +「/」'改變了'url + +「/」','.html(data)'改變了'.text(data)'。非常感謝。 – 2014-10-31 09:54:04