angularjs中$http模塊發送post請求request payload轉form data

背景: ionic+ angularjs+ cordova
在開發一個證書照片刪除的時候,後端提供了一個post接口,須要前端將數據轉化成form data。而在angularjs中,若是直接用post方式,發送數據是以Request Payload而不是以Form Data。前端

$http({
    method: 'POST',
    url: url,
    data: data
}).success(function () {});

運行結果: chrome
圖片描述jquery

這樣後端是沒法獲取的。angularjs

解決辦法:
一、對post進行配置web

$http({
    method: 'POST',
    url: url,
    headers: {'Content-Type': 'application/x-www-form-urlencoded'},
    transformRequest: function(obj) {
        var str = [];
        for(var p in obj)
        str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
        return str.join("&");
    },
    data: xsrf
}).success(function () {});

這樣就能轉化成form data數據讓後端接收了。chrome

二、使用jquery對數據進行處理
var data = $.param(data)後端

結尾:
最後沒有用以上的任何一種方法解決。由於整個項目是用websocket方式(除了實名認證和添加證書時考慮斷點續傳用了http方式),通過一番套路,總監讓後端改爲用websocket的方式了,而後就沒有而後了。。。websocket

相關文章
相關標籤/搜索