鍍金池/ 問答/C++/ ajax post請求一個xml的對象,傳不到后臺報錯

ajax post請求一個xml的對象,傳不到后臺報錯

ajax Post請求,后臺接受的是string類型,對象傳json報文可以成功,但是傳個xml報文就報錯
request: obj.request 這個request后臺接收的是string類型,前臺obj.request是json就沒問題,但是傳個xml報文就報錯。請各位大神幫忙看看怎么解決?

SaveInterface: function () {

            var obj = this.template;
            console.log(obj.requestType);
            console.log(obj.request);
            if (obj.interfacename == "" || obj.request == "") {
                alert("接口名或Request為空!");
            }
            else {
                var $promise = $.ajax({
                    url: '@Url.Action("CreateInterface")',
                    type: "post",
                    dataType: "json",
                    data: { serviceName: obj.ServiceName, interfaceName: obj.interfacename, requestType: obj.requestType, request: obj.request }
                });
                $promise.done(function (result) {
                    if (result.isSuccess) {
                        alert("保存成功");
                        //添加服務(wù)信息到服務(wù)列表
                        vm.interfaceNames.push(obj.interfacename);
                        art.dialog.opener.art.dialog.list['Addinterface'].close();
                    }
                    else {
                        alert("保存失敗");
                    }
                });
回答
編輯回答
拮據(jù)

ajax首先指定datatype類型 為xml,動態(tài)生成的XML一定要將其設(shè)置為text/xml,否則默認(rèn)就是text/html也就是普通的文本了。然后根據(jù)根節(jié)點獲得子節(jié)點數(shù)據(jù)
僅供參考http://www.cnblogs.com/mslove...

2017年10月15日 19:13
編輯回答
念舊

jQuery的ajax的dataType指的是返回的數(shù)據(jù)類型,不是請求的數(shù)據(jù)類型。

如果你要傳送XML類型,需要設(shè)置contentType并且你要自己構(gòu)建出xml數(shù)據(jù),api不會自動幫你生成xml的

不知你說的是不是這個

2018年4月15日 08:15
編輯回答
孤毒

你好,不知道這個對你有沒有幫助AJAX使用post發(fā)送數(shù)據(jù)xml格式接受數(shù)據(jù)

2017年9月11日 00:13
編輯回答
誮惜顏

謝謝大家的獻策,我已經(jīng)解決了。
問題在于XMl里有url,所以需要把request給加密下,encodeURIComponent(obj.request),然后傳到后臺后再解密:HttpUtility.UrlDecode(),這樣就解決了。

2018年8月14日 09:11