2014-10-30 104 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