2016-04-05 2 views
0

Der Web-Service unter http://localhost:57501/api/addDatabase hat den folgenden Code.Web-Service empfängt null mit jQuery-Post JSON

[System.Web.Mvc.HttpPost] 
    public ActionResult Post(addDatabase pNuevaConeccion) 
    { 
     pNuevaConeccion.insertarMetaData(); 
     return null; 
    } 

Die Ajax-Funktion ist auf einem Javascript, die die JSON aus den give Werte auf http://localhost:1161/CreateServer schafft.

$ (document) .ready (function() {

$("#createServer").click(function (e) { 

    e.preventDefault(); //Prevent the normal submission action 

    var frm = $("#CreateServerID"); 
    var dataa = JSON.stringify(frm.serializeJSON()); 
    console.log(dataa); 

    $.ajax({ 

     type: 'POST', 
     url: 'http://localhost:57501/api/addDatabase/', 
     contentType: 'application/json; charset=utf-8', 
     crossDomain: true, 
     //ContentLength: dataa.length, 
     data: dataa, 
     datatype: 'json', 
     error: function (response) 
     { 
      alert(response.responseText); 

     }, 
     success: function (response) 
     { 
      alert(response); 
      if (response == "Database successfully connected") { 
       var pagina = "/CreateServer" 
       location.href = pagina 


      } 
     } 
    }); 

}); 

}); Wenn ich diesen Code ausführen, erscheint eine Warnung "undefined", aber wenn ich den contentType lösche, wird die Warnung nicht angezeigt. Das Problem ist, dass die Variablen, die die Funktion Post (vom Webservice) empfängt, NULL sind, obwohl ich weiß, dass der JSON namens data nicht NULL ist, seit ich eine console.log gemacht habe.

Ich habe verschiedene Beispiele gesehen und ziemlich alle von ihnen sagen, dass ich eine relative URL verwenden sollte, aber das Problem ist, dass es zwei verschiedene Domänen gibt und wenn ich es versuchte, konnte es die URL nicht finden, da es nicht ist im selben localhost.

Antwort

1

Der Webdienst sollte ein JSON-Format anstelle von null zurückgeben. wie unter Beispiel.

public JsonResult Post() 
    { 
     string output = pNuevaConeccion.insertarMetaData(); 

     return Json(output, JsonRequestBehavior.AllowGet); 
    } 
0

versuchen diesen Code zu verwenden, für den Aufruf der Web-Methode

$.ajax({ 
     method: "POST", 
     contentType: "application/json; charset=utf-8", 
     data: dataa, 
     url: 'http://localhost:57501/api/addDatabase/', 
     success: function (data) { 
      console.log(data);    
     }, 
     error: function (error) { 
      console.log(error); 
     } 
}); 
0
its my old code.(ensure action parameter variable name and post variable name are same) 

$('#ConnectionAddres_ZonesId').change(function() { 
      var optionSelected = $(this).find("option:selected"); 
      var id = { id: optionSelected.val() }; 

      $.ajax({ 
       type: "POST", 
       url: '@Url.Action("GetParetArea", "Customers")', 
       contentType: "application/json;charset=utf-8", 
       data: JSON.stringify(id), 
       dataType: "json", 
       success: function (data) { 
        $('#ConnectionAddres_ParentAreaId').empty().append('<option value="">Select parent area</option>'); 
        $.each(data, function (index, value) { 
         $('#ConnectionAddres_ParentAreaId').append($('<option />', { 
          value: value.Id, 
          text: value.Area 
         })); 
        }); 
       }, 
      }); 
     }); 

public ActionResult GetParetArea(int id) 
     { 
      var parents=""; 
      return Json(parents, JsonRequestBehavior.AllowGet); 
     } 
Verwandte Themen