当我尝试使用jQuery作为响应发出AJAX请求时,我得到同一页面的html! 这是一个实时预览(由于我修复它而无法编辑)
这是我的档案 编辑:我已对某些文件进行了更改
主控制器:
Class Main extends Controller {
function Main()
{
parent::Controller();
}
function index(){
$this->load->view('oxila_index');
}}
Oxila_index视图(只是HTML的其余部分在上面的链接中)
<script type="text/javascript">
$(document).ready(function(){
$("#inv").hide();
});
$(document).ready(function(){
$("#submit").click(function(evt){
$.post("/ajax/process", {
url: $("#url").val()
}, function(response){
$("#output").html("");
$("#inv").show("slow");
$("#output").html(response);
}, "text");
evt.preventDefault();
});
});
</script>
Ajax控制器
Class Ajax extends Controller {
function process(){
$data['url'] = $this->input->post('url');
$this->load->view('test',$data);
echo "hello world";
}
}
答案 0 :(得分:1)
我刚试过你的页面,效果很好。仅供参考,我在Linux中使用谷歌浏览器。
我有一些笔记。首先,将script
从<head>
移至页面底部</body>
上方。这是最佳实践,因为加载js代码将阻止其他页面元素,CSS和图像的并发加载。
其次,如果您未在服务器端更改任何内容,请使用GET
代替POST
。要避免在IE中进行缓存,只需添加另一个具有随机值的参数。
第三,行$("#output").html("");
不是必需的。您可以放置$("#output").html(response);
,因为.html()
将替换容器中的所有现有内容。不需要清空它。
答案 1 :(得分:1)
这是论坛上的一个人告诉我的事情
你肯定有适当的东西。我键入的每一条路径 在网址引导我到家后 页。尝试更改您的网址协议 AUTO到别的东西。 (这可以 在config / config.php文件中找到)
我将其更改为“REQUEST_URI”并且有效!
答案 2 :(得分:0)
您没有测试功能的视图,并且您的模型无法处理发布请求
答案 3 :(得分:0)
确保您的配置将此设置设置为FALSE;
$config['compress_output'] = FALSE;
答案 4 :(得分:0)
为什么公共职能?
public function test(){
echo $this->input->post('lurl');
}
删除公开,只需将其作为其他任何人的功能:http://codeigniter.com/user_guide/general/controllers.html
还要尝试在javascript中包含整个网址以尝试它是否有效:
$.post("http://yourwebsite/oxila/test/")