簡體   English   中英

MVC4 AJAX發布JSON

[英]MVC4 AJAX post JSON

這是我的功能,我只發布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)
        {}

除非使用使用Flash或iframe等其他“技術”的插件,否則您無法通過AJAX上傳文件(按設計)-這是一種安全措施,因為JavaScript讀取計算機上的本地文件不是最佳方法

這里有一個選項: http : //jquery.malsup.com/form/

...否則,我建議您查找其他多種選擇之一!

在將數據獲取到base 64之后,您的json應該是控制器中的對象,而json應該是這樣的

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

同樣在客戶端,您應該有一個對象,您可以在該對象上調用JSON.stringify()

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

盡管我看不到發送兩者的理由。 如果您只需要傳輸圖像,則只需將圖像獲取為base64並將其發布為json

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM