2016-04-06 22 views
0

3 gün boyunca bu sorunla karşılaştım ve çevrimiçi olarak yararlı bilgiler bulamıyorum.JQuery istek iptal edildi - Spring MVC denetleyicisinde iki kez çağrılan yöntem

İşte benim sorunum: Bir liste görüntüleyen bir .jsp sayfam var (denetleyicimde, bu @RequestMapping (value = "list") tarafından ele alınır. Öğenin ayrıntılarını göstermek için bir div görüntülemek için JQuery $ ajax kullanarak veritabanını okumak için sunucuya bir istek göndermek (denetleyicide, bu @RequestMapping (value = "getCompany") tarafından ele alınmıştır.)

Ben sorunu JQuery (HttpFox'u tip "NS_BINDING_ABORTED") iptal eder tarafından gönderilen talebidir. Tarayıcımdaki URL'yi manuel girdiğinizde düzgün şekilde çalışıyorsa.

Ben stran görünüyor şey fark ge bana: istek denetleyiciye gönderildiğinde, (getCompany) yöntemini yürütür, sonucu döndürür (@ResponseBody kullanarak), ancak yönlendirme talimatına sahip olmamasına rağmen "liste" yönteminden hemen sonra çağrılır. İstenmeyen yeniden yönlendirme, iptal edilen JQuery isteğinin nedeni olabilir mi? Birisi bu yeniden yönlendirmeyi nasıl engelleyeceğini biliyor mu?

Anlayışımda, getCompany yöntemi yalnızca yanıtını sonuca eklemelidir.

Yardımlarınız için teşekkür ederiz!

 $(document).ready(function(){ 

    //F1 
    $(".company").click(function(){ 

     var id = this.id; 

      $.ajax({ 
       type: "GET", 
       url : 'getCompany', 
       data: {companyId:id}, 

       success : function(jqXHR, textStatus) 
       { 
        alert("success"); 
         var json = '${jsonCompany}'; 
       }, 
         error: function(jqXHR, textStatus, errorThrown) { 
          console.log(jqXHR.status, textStatus, errorThrown); 
           }, 

         complete : function(result, status) 
         { 

          var json = '${jsonCompany}'; 
         } 
     }); 
    }) //End F1 

ve benim denetleyicisi: bazı diğerlerine yardımcı olabilir eğer

@Controller("company") 
public class CompanyController extends CommonController{ 

CompanyService companyService; 


/** to company.jsp */ 
@RequestMapping(value = "list") 
public ModelAndView manageCompanies() 
{ 
    mav.clear(); 
    mav.addObject("companiesList", getCompaniesList()); 
    mav.addObject("companyForm",new CompanyForm()); 
    mav.setViewName("admin/company"); 
    return mav; 
} 

/** @return company */ 
@RequestMapping(value = "getCompany") 
public @ResponseBody String   getCompany(@RequestParam(value="companyId", required = true) String companyId) 
{ 
    Company company = companyService.getCompany(new Integer(companyId)); 
    return companyService.toJSON(company).toString(); 
} 

cevap

0

Sonunda, benim sorunun sebebini buldum

İşte benim senaryom. $ Ajax GET'i çağırmak için kullanılan listenin (temel <td>) öğesi üzerinde bir bağlantı vardı (<a href"">) ve tarayıcıda görüntülenen URL'yi gönderiyordu => "wierd" yönlendirme sorunu değil. Ve soruma cevap verin: evet, aynı anda iki istek göndermek (veya hemen hemen), isteklerden birini (benim durumumda, $ ajax one) öldürecektir.

İlgili konular