2016-01-29 2 views
0

У меня есть REST API, и я хочу вызвать его из моего javascript-клиента ajax.Как правильно называть мой отдых api от ajax javascript Клиент

Я делаю звонок, и ничего не происходит. Мой мобильный браузер просто указывает «занят».

Ошибка не возвращается.

Это мой код позади:

[HttpPost] 
[Route("Services/Image/Validate")] 
public byte Validate(string KeyCode) 
{ 
    return 1; 
} 

это мой JavaScript клиент:

$("#btnValidate").click(function() { 
    try {    
     var url = "http://MY_DOMAIN_NAME/api/Services/Image/Validate"; 
     $.ajax({ 
      type: 'POST', 
      url: url, 
      data: '{ "KeyCode" : "' + $("#KeyCode").val() + '" }', 
      contentType: 'application/json; charset=utf-8', 
      dataType: 'json', 
      success: function (msg) { 
       $('#divStep1').hide(); 
       $('#divStep2').show(); 
      }, 
      fail: function (a) { 
       $("#error").html(objRequest); 
      } 
     }); 
    } 
    catch (ex) 
    { 
     $("#error").html(ex); 
    } 
    return false; 
}); 
+0

каждая вещь правильно. что входит в консоль? –

+0

ah, nit сложно проверить, как я пользуюсь своим мобильным браузером, и это iPhone, и у меня нет iMac :( –

+0

немой, что сказать, просто запустите его через браузер для рабочего стола, а ошибка –

ответ

-1

Функция задвижка с сгенерирует ошибку только тогда, когда запрос HTTP не удается. Для того, чтобы знать wha'ts идет неправильно в стороне сервера код, который нужно использовать функцию error в Ajax запрос,

Вы также упомянули, что браузер не делает ничего, и это может произойти из-за

  1. JQuery плагин не включен в страницу (проверьте консоль $ is not defined)
  2. Добавьте JQuery плагин выше вашего JavaScript
  3. Если на стороне сервера код находится на другом домене позволяют CORS

    $("#btnValidate").click(function() {  
    var url = "http://MY_DOMAIN_NAME/api/Services/Image/Validate"; 
    $.ajax({ 
        type: 'POST', 
        url: url, 
        data: '{ "KeyCode" : "' + $("#KeyCode").val() + '" }', 
        contentType: 'application/json; charset=utf-8', 
        dataType: 'json', 
        success: function (msg) { 
         $('#divStep1').hide(); 
         $('#divStep2').show(); 
        }, 
        error: function (e) { 
         console.log(e.responseText); //Acutal error 
         console.log(e); //Get the entire error details 
        } 
    }); 
    }); 
    
+0

привет, JQuery плагин связан в –

+0

не в другом домене. Все в порядке. Я сделал основы :) –

+1

Приветствия :) Если вы работаете с jQuery, вы всегда можете использовать консоль, чтобы проверить, что происходит неправильно, особенно на вкладке «xhr» сети для ajax Запросы! –

-1

Параметры объекта, который вы отправляете $.Ajax() не ожидает, что параметр fail. Может быть, вы сбиваете с толку обещания?

В любом случае, это должно быть error.
например.

$("#btnValidate").click(function() { 
    try {    
     var url = "http://MY_DOMAIN_NAME/api/Services/Image/Validate"; 
     $.ajax({ 
      type: 'POST', 
      url: url, 
      data: '{ "KeyCode" : "' + $("#KeyCode").val() + '" }', 
      contentType: 'application/json; charset=utf-8', 
      dataType: 'json', 
      success: function (msg) { 
       $('#divStep1').hide(); 
       $('#divStep2').show(); 
      }, 
      error: function (jqXHR, textStatus, errorThrown) { 
       $("#error").html(textStatus); 
      } 
     }); 
    } 
    catch (ex) 
    { 
     $("#error").html(ex); 
    } 
    return false; 
}); 

Кроме того, я не уверен, что вы должны иметь data свойство в виде строки, но может быть, это, как вы хотите.

Вся документация на это HERE

+0

спасибо, что я теперь изменил его на 'error' –

+0

спасибо за ссылку. Да, я знаю эту страницу. Это была ошибка копирования и вставки в отношении обработки ошибок ajax. –

+0

Да, он должен использовать 'error' вместо' fail'. То же, что и другой ответ (который был опубликован одновременно). Оба из них, похоже, сведены вниз. – 2pha

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