当我尝试使用 jQuery 发出 AJAX 请求作为响应时,我得到同一页面的 html! 这是实时预览(由于我修复了它,编辑不可用)
这是我的文件 编辑:我对一些文件进行了更改
主 Controller :
Class Main extends Controller {
function Main()
{
parent::Controller();
}
function index(){
$this->load->view('oxila_index');
}}
Oxila_index View (html 的 JS 其余部分位于上面的链接中)
<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 Controller
Class Ajax extends Controller {
function process(){
$data['url'] = $this->input->post('url');
$this->load->view('test',$data);
echo "hello world";
}
}
请您参考如下方法:
我刚刚尝试了您的页面,效果很好。仅供引用,我在 Linux 中使用 google chrome。
不过我有一些笔记。首先,移动script来自<head>到页面底部,上方 </body> 。这是最佳实践,因为加载 js 代码将阻止其他页面元素、CSS 和图像的并发加载。
其次,如果您不更改服务器端的任何内容,请使用 GET而不是POST 。为了避免在 IE 中缓存,只需添加另一个具有随机值的参数即可。
三、线路$("#output").html("");没有必要。您可以输入 $("#output").html(response);因为.html()将替换容器内的任何现有内容。无需清空它。
