2013-11-14 4 views
0
$.ajax({ 
       type: "POST", 
       url: "Login.aspx/LoginUser", 
       data: "{'LoginObject':" + JSON.stringify(LoginObject) + "}", 
       contentType: "application/json", 
       dataType: "json", 
       success: function (data) { 
        if (data.d == "Success") { 
         location.href = "Share.aspx"; 
        } 
        else if(data.d == "Failure") 
        { 
         $("#lblStatus").html("Username or Password supplied is invalid. Please try again."); 
        } 
       }, 
      }); 

Когда data.d является Failure, выполняется оператор условия, но когда data.d является Success, страница не переходит в Share.aspx. В чем проблема в коде?Ajax call не работает должным образом

+0

Есть ли лишнее место в «Успехе»? Попробуйте обрезать его. – tymeJV

+0

no there isnt ..... –

+0

Поместите оператор журнала в этот блок 'if', выполняется ли он? – tymeJV

ответ

0

Скорее всего, существует проблема с отправляемым вами форматом запроса. Посмотрите на вкладку сети инструментов dev и посмотрите на html req/resp. Посмотрите на формат тела запроса (LoginObject) и сравните его с тем, что должно соответствовать требованиям вашей документации по технологиям сервера.

Не нужно «подкручивать» свой LoginObject для параметра data. Параметр data ожидает, что объект-литерал будет использоваться как значение.

данные Тип: PlainObject или String Данные для отправки на сервер. Он равен , преобразованному в строку запроса, если уже не строка. Он добавляется к URL-адресам для запросов GET. См. Параметр processData для предотвращения этой автоматической обработки . Объектом должны быть пары «ключ/значение». Если значением является массив , jQuery сериализует несколько значений с тем же ключом на основе значения значения традиционной настройки (описано ниже).

$.ajax({ 
type: "POST", 
url: "Login.aspx/LoginUser", 
data: { 
    LoginObject:LoginObject 
}, 
contentType: "application/json", 
dataType: "json", 
success: function (data) { 
    console.dir(data); 
    if (data.d == "Success") { 
    location.href = "Share.aspx"; 
    } else if(data.d == "Failure") { 
    $("#lblStatus").html("Username or Password supplied is invalid. Please try again."); 
    } 
}, 
}); 
+0

Нет. После добавления вышеописанного кода теперь как успех, так и неудача не работают! С моим кодом работает условный оператор IFailure, но не условный оператор Success –

+0

В приведенном выше фрагменте показано, что параметр данных не должен быть JSON string. Вы посмотрели на формат тела запроса (LoginObject) и сравнили его с тем, что должно быть в соответствии с вашими требованиями к документации по технологиям сервера? Какой вы нашли? Если запрос отформатирован правильно, пришло время двигаться на устранение неполадок на стороне сервера. – ricksuggs

+0

Серверная сторона возвращает строку как «Успех» или «Сбой». Он работает для отказа, но не для успеха. –

0
jQuery.ajax({ 
    type: "POST", 
    url: "Login.aspx/LoginUser", 
    contentType: "application/json; charset=utf-8", 
    data: JSON.stringify({ 
     id: ce 
    }), 
    success: function(data) { 
     if (data.d == "Success") { 
      location.href = "Share.aspx"; 
     } else if (data.d == "Failure") { 
      $("#lblStatus").html("Username or Password supplied is invalid. Please try again."); 
     } 
    }, 
    error: function() { 
     alert("Oh no:"); 
    } 
}); 
0

Есть проблема !!! Один из моих веб-сервисов вызывал FormsAuthentication.RedirectFromLoginPage (имя пользователя, true). Это было ясно, почему я получаю аутентификацию не удалось !!! После его удаления вызов ajax работал правильно. :) Приветствия ...

Смежные вопросы