2013-08-12 3 views
1

я написал один запрос Ajax поста на ASPX странице, которая будет вызывать веб-метод написано в коде позади class.This метод возвратного URL в redirect..All работает отлично до функции успеха вызова ajax, но в функции успеха я перенаправляюсь на другую страницу ex.Перенаправление на другую страницу не работает в Ajax вызова

window.location.assign(data.d) 

Я проверил результат data.d через оповещение в функции успеха, который показывает правильный URL, но его не rediecting к этому page..Plz помощь ..

Полный код здесь ..

Это скрипт:

<script type="text/javascript"> 
     jQuery(document).ready(function() { 
      $('#loginbtn').click(function() { 
       var userName = document.getElementById('uid').value; 
       var password = document.getElementById('pwd').value; 
       $.ajax({ 
        type: "POST", 
        url: "testAjax.aspx/Authenticate", 
        data: JSON.stringify({ userName: userName, password: password }), 
        async: false, 
        contentType: "application/json; charset=utf-8", 
        dataType: "json", 
        success: function(data) { window.location.assign(data.d); }, 
        error: function(e) { 
         alert(e.valueOf()); 
        } 
       }); 
       //alert("dsf"); 
      }); 

     }); 
    </script> 

и Ниже приводится веб-метод:

[WebMethod] 
     public static string Authenticate(string userName, string password) 
     { 
      try 
      { 
       return "Home.aspx"; 
      } 
      catch (Exception ex) 
      { 
       return string.Empty; 
      } 

     } 

Обратите внимание: Если я раскомментировать предупреждения («ВСД»), все работает отлично это успешно Home.aspx..But перенаправляет без этого предупреждения он не будет перенаправлять.

+0

Я вижу, что вы пытаетесь получить доступ к 'data.d'. Что такое 'd'? Попробуйте 'console.log (data);' и посмотрите, что он дает. –

+0

Он дает правильный результат. Я его протестировал. – user1093183

+0

Даже если я жестко код url там .. Он не работает. Он работает только в том случае, если есть предупреждение. В этом случае alert ("dsf"); – user1093183

ответ

0

попробовать это

success: function(data) { window.location=data.ToString(); } 
0

Попробуйте

<script type="text/javascript"> 
    jQuery(document).ready(function() { 
     $('#loginbtn').click(function() { 
      var userName = document.getElementById('uid').value; 
      var password = document.getElementById('pwd').value; 
      $.ajax({ 
       type: "POST", 
       url: "testAjax.aspx/Authenticate", 
       data: JSON.stringify({ userName: userName, password: password }), 
       async: false, 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       success: function(data) { window.location=data.d; }, 
       error: function(e) { 
        alert(e.valueOf()); 
       } 
      }); 
      //alert("dsf"); 
     }); 

    }); 
</script> 
Смежные вопросы