MVC4 AJAX post JSON

本文关键字:JSON post AJAX MVC4 | 更新日期: 2023-09-27 17:50:05

这是我的函数,在这里我只发布json

function test() {
            var imgFile = document.getElementById('image');
            //            var imgData = JSON.stringify(getBase64Image(imgElem));
            //var imgData = Convert.FormBase64String(imgElem);
            $.ajax({
                type: 'POST',
                dataType: 'json',
                url: "http://localhost:59102/Contacts/AddContact",
                data: "json=" + "{'"token'":'"8mVm/nS1OfpU+nlQLbJjqXJ7kJI=VyLGI2GEKkGgtDt0babrAw=='"}",
                success: function (returnPayload) {
                    console && console.log("request succeeded");
                },
                error: function (xhr, ajaxOptions, thrownError) {
                    console && console.log("request failed");
                },
                processData: false,
                async: false
            });

和我不知道如何添加到我的数据,图像,我需要张贴json和图像

这是我的控制器

[HttpPost]
        [AllowAnonymous]
        public JsonResult AddContact(string json, HttpPostedFileBase file)
        {}

MVC4 AJAX post JSON

你不能通过AJAX(按照设计)上传文件,除非你使用一个插件,利用其他"技术",如flash,或iframes -这是一个安全措施,JavaScript读取本地文件在你的机器上将不是最好的主意

这里有选项:http://jquery.malsup.com/form/

…否则,我建议从众多其他选择中选择一个!

在您获得64进制的数据后,您的json应该是一个对象控制器的json应该是这样的

{"json":"something here that is a string","file":"some file"}

同样在客户端,你应该有一个n对象,你调用JSON.stringify()

var ob = {json:imageDataAsBase64,file:fileDataAsBinary}

虽然我看不出有什么理由把两个都送去。如果你需要的只是传输图像你只需要获取base64格式的图像并以json格式发布