En 
data : con el simple hecho de que mandes el formato en json ya sabe que le estas enviando json, en data pones: query string o  un objeto Javascript
:     
Código Javascript
:
Ver original$.ajax({
  type : "POST",
  url : url,
  contentType : "application/json",
  dataType : "json",
  data: { nombre: "lfna23", lugar: "Nowhere" },
  success : function(data) {
       alert("success");         
  },
  error : function (xhr) {              
  }
});
  
Estoy de acuerdo que estas usando   
Pero estamos tambien de acuerdo que 
vdata es un objecto con propiedades verdad ?  
Tambien recuerda que al usar:  
No es el tipo de informacion lo que le estas enviando sino le estas diciendo que vas a esperar recibir informacion de tipo JSON.