2015-01-28 5 views
0

Я использую Javascript и JQuery для вызова веб-службы. Служба должна вернуть объект. Если возвращаемый объект содержит Result = 0, я хочу показать предупреждение, а если нет, я хочу показать другое предупреждение.Javascript - Обработка ответа на вызов AJAX с веб-службы

Мой код показан ниже. Я пробовал «if (data.Result)» и «if (data.Result = 0)», и ни один из них не работает и не отображает всплывающее сообщение «добавлено».

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

Объект возвращается:

код
data: Object 
Booking: Object 
BookingId: "28eec5f6-29a7-e411-941a-00155d101201" 
BookingProductIds: null 
BookingStatus: 2 
CrossSellProducts: null 
ErrorMessage: "" 
Result: 0 

Javascript:

function generateOrder() { 
     ABC.TixService.AddStockProduct(null, null, productRequest, ticketingRequest, function (context, data) { 
      if (data.Result) { 
       alert("stock added"); 
      } 
      else 
       alert("error"); 
     }); 



AddStockProduct: function (context, bookingId, productRequests, request, action) { 
    $.ajax({ 
     url: 'TixService.svc/AddStockProduct', 
     cache: false, 
     type: 'POST', 
     dataType: 'json', 
     contentType: 'application/json', 
     data: JSON.stringify({ bookingId: bookingId, productRequests: productRequests, request: request }), 
     context: { context: context, action: action }, 
     success: function (data) { 
      this.action(this.context, data.AddStockProductResult); 

     }, 
     error: function (xhr, ajaxOptions, thrownError) { 
      ErrorResponse(xhr, thrownError); 
     } 
    }); 
}, 
+0

Таким образом, вы всегда получите предупреждение ('ошибка') правильно ? –

+1

'if (data.Result)' будет false, если 'data.Result' равно 0, а' if (data.Result = 0) 'всегда будет false, потому что вы использовали оператор присваивания, а не равный оператору, и' 0' ложный. –

+0

@KevinB Да. Результат: 0 - это то, что я ожидаю получить обратно. Если это так, я должен был вывести «добавленный запас», иначе «ошибка». В минуту я всегда получаю «ошибку». – kong88

ответ

0

Не следует ли тест быть:

if(data.Result === 0){ 
    alert('stock added'); 
} 
+0

Не знаю. После прочтения комментариев. if (! data.Result) ... if (data.Result == 0) и if (data.Result === 0) все работает. – kong88

+0

Найдите оператора ===. Это для точных совпадений. – Ryan

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