MVC4模型验证然后使用JQuery向外部URI提交JSON post

本文关键字:URI 外部 提交 JSON post JQuery 验证 模型 然后 MVC4 | 更新日期: 2023-09-27 18:10:26

我需要提交一个简单的表单并验证模型。如果模型是有效的,我想序列化该模型,并通过POST发送到使用自定义标题的外部(https) web服务。最后,我将处理从请求返回的响应,并显示相应的消息。

我正在从控制器完美地验证模型并序列化对象,但似乎无法找到一种方法来创建一个JSON post请求到外部URI。是否有一种方法可以使用JQuery做到这一点。Ajax或$.post。也许我错过了一个关键的ajax参数来实现这一点。

谢谢

MVC4模型验证然后使用JQuery向外部URI提交JSON post

根据对问题的澄清,你可以这样做:

定义将验证对象的控制器方法

public ActionResult TestMethod() {
    // do server-side validation
    return Json(aValidObject);
}

你做一个ajax post到你的控制器,这样你就可以验证你的模型,然后得到一个json结果。

$.ajax({
    url: '@Url.Action("TestMethod")',
    data: some_data,
    type: "post",        
    success: function (result) {
        // result is a valid json object
        doExternalPost(result);
    }
});

添加自定义标题并做外部post

function doExternalPost(o) {
    $.ajax({
        url: 'http://some_external_url',
        data: o,        
        dataType: 'json',
        beforeSend: function (xhr) {
            xhr.setRequestHeader('custom_header', 'some_value');
        },
        success: function() {
            // post is sucessful 
        },
        error: function (xhr, errorType, exception) {
            var errorMessage = exception || xhr.statusText || xhr.responseText;
            alert('An error has occured: ' + errorMessage);
        },
    });
}

try this

var data = {jsonDataObjectHere};
var request = $.ajax({
    url : 'externalUrl.com/something.whatever',
    type : 'POST',
    data : data // see above
});
request.success(function(response){
    // the response is the stuff from the server
});

我很困,所以原谅我的错别字

好运

编辑:为了一点澄清,与MVC你真的不需要序列化json对象,MVC将接受它,因为它是。