Zend Framework中的Ajax的Url疑惑解除:
=======================================
Jquery AJax部分 webinar.phtml中
//登录提交
$("#loginSubmit").click(
function(){
var username = $("#textfield").val();
var password = $("#textfield2").val();
if(username=='' || password==''){
alert('用户名或者密码不能为空!');
return false;
}
var no = Math.random();
var url = $("#baseUrl").val()+'/webinar/index/login/no/'+no;
$.get(url,{username:username,password:password },function(backdata){
if(backdata != 'error'){
$("#loginShow").fadeOut();
$("#showName ").text(backdata);
$("#loginSuccessShow").fadeIn();
}else{
alert("您输入的用户名或密码错误!请重新输入!")
$("#textfield").val('');
$("#textfield2").val('');
}
});
}
);
这里的Url要按照Zend FrameWork的正确格式输入。我当时为了不让Ajax请求内容缓存,在请求的Url后面直接加上一个no的随机数。之前出错的Url我写成了var url = 'login?no'+no;这样写不行的,用firbug测试会发现如果登录框所在页面请求的url倘若为localhost/webinar/public/webinar/index/index; (Module=webinar,controller=index,action=index);在该页面上有一个登录框,让其提交的时候触发上面提交按钮绑定的事件时候,会发现ajax请求的url不是localhost/webinar/public/webinar/index/login?no=....而是变成了localhost/webinar/public/webinar/index/index/localhost/webinar/public/webinar/index/login?no=....这样当然会让zend Framework找不到对应的action;解决方法就是必须按照ZendFramework的正常传值格式,以'名/值'对的形式来传递变量。罗嗦到此!
浙公网安备 33010602011771号