window.location.replace奇怪的行为

时间:2014-12-12 10:47:10

标签: javascript jquery jquery-mobile

所以我遇到这个问题,我在第一个window.location.replace尝试丢失了所有数据(第二次重新加载同一页面,一切似乎工作正常) 我已经四处寻找,但没有找到这样的东西

这是代码,所以我可以更加彻底地解释我的问题:

$(document).ready(function() {
    $('#login_form').on('submit', function(event){
        event.preventDefault();
    	// Retrieve form data
        var formData = {
            'index'           	: $('input[name=user]').val(),
            'password'          : $('input[name=pass]').val()
        };
        //convert formData from JS object to PHP understandable 
        var formData1=jsObj2phpObj(formData);

        var url= 'login.php';
        //sending with post in ajax to register.php
        $.post(url,{formData1:formData1})
         .done(function(data){
            if(!(data["Log_success"])){ 
              alert("Log failed")
              }
            else
              {
               window.location.replace('http://localhost/CPPv2/admin_commented/index.html#home');
               var draw_stringholder="";
               draw_stringholder+=data["user_index"]+data["user_email"];
               document.getElementById("myPanel").innerHTML=draw_stringholder;
               }
          }

所以我的函数所做的是它将数据发送到PHP页面并重新接收JSON编码数据。我第一次提交表单时似乎没有收到任何网络数据(我认为这是因为window.location.replace删除它)但刷新页面并再次提交表单后一切正常(索引和电子邮件都写完了)在myPanel元素内)。

我已经尝试过使用window.location / window.location.href ...(我想我尝试了其他所有功能)并且他们只是不发送我,就像他们根本不工作一样。 if(!(data [“Log_sccuess”]))部分始终有效(因此客户端 - 服务器通信工作正常)。

说使用JqueryMobile-1.4.4(也试过他们的重定向方法不起作用)也很重要

总结一下,我想将当前页面链接更改为另一个,而不会丢失服务器生成的数据。 (因为我低音保持在同一页只是改变它的Id部分)。我可以通过在登录后刷新页面来解决我的问题(在登录后发送服务器请求),但这似乎不是正确的方法。

1 个答案:

答案 0 :(得分:0)

我使用$ .mobile.changePage(“#ulr”,{transition:“slideup”})而不是window.location.replace;