我有这个简单的ajax调用来激活API以验证登录凭据。
$('#loginForm').submit(function (e) {
e.preventDefault();
$.ajax({
url: baseURL + "agent/login",
type: 'post',
data: {login: $('#login').val(), password: $('#password').val()},
success: function (results) {
if(results.status === 0){
window.location = baseURL + "agent/dashboard";
}
else{
alert(results.message);
}
},
error: function(data) {
alert("Status: " + textStatus); alert("Error: " + errorThrown);
}
});
});
现在,完整的目标网址为localhost/app/agent/login
。 baseURL = http://localhost/app/
。
我在服务器上收到请求。但是,当我回复时,window.location
不会将我重定向到localhost/app/agent/dashboard
,而是将其重定向到http://localhost/app/agent/localhost/app/agent/login
我不明白为什么会这样。这是.htaccess
如果有帮助的话
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
我在XAMPP上使用Codeigniter 3.1.4
答案 0 :(得分:1)
像这样使用你的window.location
// similar behavior as an HTTP redirect
window.location.replace("http://stackoverflow.com");
// similar behavior as clicking on a link
window.location.href = "http://stackoverflow.com";
答案 1 :(得分:1)
window.location
是一个您不应该为其分配网址的对象。
有关详细信息,请转到here
Window.location只读属性返回一个Location对象 有关文件当前位置的信息。
你应该做的是window.location.href = your_url
(模拟使用网址点击页面中的链接。)
或使用window.location.replace(your_url)
重定向到网址。
答案 2 :(得分:0)
baseURL
被解释为相对URL而不是绝对URL。您应指定完整网址http://localhost/app/agent/login
或将baseURL
截断为/app/agent/login