window.location表现得很奇怪。它不会重定向到指定的路径

时间:2017-05-31 14:05:30

标签: javascript jquery .htaccess

我有这个简单的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/loginbaseURL = 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

3 个答案:

答案 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