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参数来实现这一点。
谢谢
根据对问题的澄清,你可以这样做:
定义将验证对象的控制器方法
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将接受它,因为它是。