2014-01-27 2 views
3

Javascript:Javascript Ajax Post Data

function LoginButton1OnClick() { 
     $.ajax({ 
      type: "POST", 
      url: "Login/MainPageRegister", 
      cache:false, 
      data: 
       { 
        LoginEmailText: $("#LoginEmailText").val(), 
        LoginPasswordText: $("#LoginPasswordText").val(), 
       }, 
      success: function (mydata) { 
       $("#BodyPage").html(mydata); 
      } 
     }); 
    } 

ActionResult:

[HttpPost] 
    public ActionResult MainPageRegister(MyModel model) 
    { 
     return View(); 
    } 

я отправляю данные "MainPageRegister" .Однако возникает 2 проблемы.

  1. Url никогда не меняется в browser.After я отправляю данные.

  2. Я не могу нажать кнопку «вернуться, идти вперед» в browser.If я обновить браузер по ввести «f5», откроется страница предыдущей страницы не текущая страница.

Любая помощь будет оценена по достоинству.

+0

Может и так, ваш код формы ?? –

+3

* 1-Url никогда не изменяется в браузере. После того, как я публикую данные. * Ans: ajax requst –

+0

Я хочу использовать javascript или ajax и т. Д. Для публикации данных. Что вы мне порекомендовали? @Pilot – user3239568

ответ

0

Быстрый пример хэш URL-адрес

var storedHash = window.location.hash; //get hash 
    if (storedHash !== '') { //if no empty 
     hashChanged(storedHash); 
    } 
window.setInterval(function() { 
     if (window.location.hash != storedHash) { //chek if curent hash not == to stored hash when page was opened 
      storedHash = window.location.hash; 
      hashChanged(storedHash); //if change call a funcin 
     } 
    }, 100); //check hash if changed 

function hashChanged(storedHash) { 
    var link = storedHash.substr(1, storedHash.length); //get the link 
    $.ajax({ 
     type: "POST", 
     url: link+".php", //in browser url should look like #profile so when somebody 
     cache:false, 
     data: 
      { 
       LoginEmailText: $("#LoginEmailText").val(), 
       LoginPasswordText: $("#LoginPasswordText").val(), 
      }, 
     success: function (mydata) { 
      $("#BodyPage").html(mydata); 
     } 
    }); 
    } 
  1. вы пришли на сайт example.com
  2. Если вы смените example.com # профиль
  3. Он будет автоматически запускайте функцию ajax для POST-данных в profile.php
  4. Если # будет #page, он отправит данные на страницу.php и т. д., я не проверял код, но он должен работать run console.log() для storedHash, чтобы проверить, как работает!
+0

Спасибо за вашу помощь Froxz. Но мне нужен ваш код в соответствии с моим примером кода. Можете ли вы применить свои коды к моим кодам? Так как я пробовал ваш код, я не могу одновременно изменять URL-адрес и отправлять данные. – user3239568

+0

chenged код – Froxz

1

Проблема в том, что вы выполняете запрос ajax, запрос ajax не изменяет историю браузера, и поэтому вы не можете вернуться.

Вы можете использовать HTML5 pushState(), чтобы вносить изменения в историю через JS, а также хэштеги. в JS вы можете использовать window.location.hash для изменения хеш-файла URL.

Первый ответ этого вопроса может принести больше света на эту тему: Change the URL in the browser without loading the new page using JavaScript

+0

Что такое решение? Я хочу использовать ajax/javascript для публикации данных. Что вы рекомендуете? – user3239568

+0

HTML5 Не поддерживается всеми браузерами unotruantly (( – Froxz

+0

Я отредактировал ответ, вы можете использовать HTML5 pushState, а также хэштеги. В JS вы можете использовать 'window.location.hash', чтобы изменить хэш-адрес URL. – gpopoteur

0
  1. Это Ajax мой друг. Url не изменится. Данные будут поступать как Html, потому что вы просматриваете представление. Вы можете изменять куски страницы, но вы не перенаправляете URL-адрес.

  2. Это Ajax снова. Найти последующей обходной Html 5 or JS

+0

Если я могу изменить URL-адрес, как я могу идти вперед и вернуться в браузере? Есть ли что-нибудь для решения этой проблемы? – user3239568

+0

Нажмите на ссылку ... Html 5 или JS –

0

Если вы хотите использовать ajax для публикации данных и хотите иметь поддержку URL-адреса, вам нужно будет создать приложение вокруг этой концепции.

Я бы порекомендовал взглянуть на emberjs или sammyjs. Это отличные рамки для создания приложений вокруг этой концепции url-state.

http://sammyjs.org/ http://emberjs.com/