2013-04-20 17 views
6

MVC View cihazımda AJAX POST yapmak istiyorum. GörünümündeAJAX POST - MVC Denetleyici 302 hatası gösteriyor

$('#media-search').click(function() { 
    var data = { key: $('#search-query').val() }; 

    $.ajax({ 
     type: 'POST', 
     url: '/Builder/Search', 
     data: JSON.stringify(data), 
     dataType: 'json', 
     contentType: 'application/json; charset=utf-8', 
     success: function (data) { 
      $('.builder').empty(); 
       alert("Key Passed Successfully!!!"); 
     } 
    }); 
}); 

Kontrolör Kodunu

[HttpPost] 
public ActionResult Search(string key) 
{ 
    return RedirectToAction("Simple", new { key=key }); 
} 

Senaryo Kodunu Ama AJAX POST ben 302 Bulunan Hata

alıyorum: Ben şu yazdım

cevap

7

'302' yanıt kodu bir yönlendirmedir ct. Denetleyicinizin eylemi, yalnızca bir 302 döndüren bir RedirectToAction değerini döndürür. Bu yönlendirme yönergesi, doğrudan tarayıcınız tarafından değil, doğrudan AJAX çağrısı tarafından tüketildiğinden, tarayıcınızın yeniden yönlendirilmesini istiyorsanız, aşağıdakileri yapmanız gerekir:

$.ajax({ 
    type: 'POST', 
    url: '/Builder/Search', 
    data: JSON.stringify(data), 
    dataType: 'json', 
    contentType: 'application/json; charset=utf-8', 
    success: function (data) { 
      if (data.redirect) { 
       window.location.href = data.redirect; 
      } 
      $('.builder').empty(); 
      alert("Key Passed Successfully!!!"); 
    } 
}); 

Değilse, denetleyicinizden yönlendirme talimatından daha anlamlı bir şey döndürmeniz gerekir.

+0

Başka bir sayfaya yönlendirmek istemiyorum. Sadece MVC'deki Controller'in eyleminden bazı veriler döndürmek istiyorum. –

+0

O zaman, başka bir URL'ye 302 yönlendirmesini döndüren bir 'RedirectToAction 'döndürmemelisiniz. –

+0

o zaman Json değerlerini görünüme geri döndürmek için ne yapmalıyım? –