1. 程式人生 > >angular $http post資料和jQuerypost資料不一樣

angular $http post資料和jQuerypost資料不一樣

最近遇到一個坑,用jquery post請求資料的時候有資料響應,但是用angularjs的post方法就沒有資料響應,對比了請求頭一模一樣,唯一不同的就是資料的格式有點不一樣:

最後發現angular會對post的資料進行一個預設的轉換:

如果請求的資料包含js物件,angular會預設的把data序列化JSON格式,如果後臺沒有處理是獲取不到data的。

解決辦法:

var req={
  method:'POST',
  url:'/Product/IsLogout/',
  headers:{
    "Content-Type":"application/x-www-form-urlencoded; charset=UTF-8"
, "X-Requested-With":"XMLHttpRequest", "Accept":"*/*" }, data:$.param(postData) //把資料先用jq的$.param()轉換 } $http(req).then(function(data) { console.log(data); if (data && data != "") { if (data.Code == "-1") { alert(data.Msg); location.href = "/Product/Logout"; } } }, function
(response) { console.log(response) });
但是如果你想所有的非同步都不需要自動序列化成json格式的話可以這樣改:
var module = angular.module('myApp');  
  
module.config(['$httpProvider',function($httpProvider) {  
    $httpProvider.defaults.transformRequest = function(data) {  
          //使用jQuery的param方法把JSON資料轉換成字串形式
          return $.param(data);  
  
     };  
}]);  

這樣就可以確保所有的請求都不會自動把資料序列化成json格式

相關推薦

angular $http post資料jQuerypost資料一樣

最近遇到一個坑,用jquery post請求資料的時候有資料響應,但是用angularjs的post方法就沒有資料響應,對比了請求頭一模一樣,唯一不同的就是資料的格式有點不一樣: 最後發現angular會對post的資料進行一個預設的轉換: 如果請求的資料包含js物件,an

Django中使用POST提交接收資料

POST表單資料 請求頭引數 "Content-type": "application/x-www-form-urlencoded" Django接收資料 request.POST POST json資料 請求頭引數 "Content-type": "ap

iOS 使用http POST方法傳輸二進位制資料

NSURL *url = [NSURL URLWithString:HEADIMAGE]; NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL:url]; [r

java/SpringBoot http post請求傳json資料格式(有詳細註解)

java http post請求傳json資料格式,試了很多的方式,用了下面這個是可以 import net.sf.json.JSONObject; 2 import org.apache.commons.httpclient.*; 3 import

.NET POST提交資料接收資料 用url傳參方式

//1、物件提交,字典方式 //介面方:public ActionResult GetArry(Car model) public void PostResponse() { HttpWebReques

java中從控制檯輸入資料輸出資料到控制檯

1.從控制檯輸入資料 1.使用Scanner類來完成從命令列輸入資料到自己的程式中。 2.Scanner類是JDK1.5【jdk5.0】新增的一個開發類庫。 3.Scanner類使用     3.1先匯入Scanner類所在的程式包【java.util.Sca

ElasticSearch 學習記錄之 分散式文件儲存往ES中存資料資料的原理

分散式文件儲存 ES分散式特性 遮蔽了分散式系統的複雜性 叢集內的原理 垂直擴容和水平擴容 真正的擴容能力是來自於水平擴容–為叢集新增更多的節點,並且將負載壓力和穩定性分散到這些節點中 ES叢集特點 一個叢集擁有相同

【ArcGIS|空間分析】柵格資料向量資料的面積計算

柵格向量資料計算面積之前,都需要將資料進行投影轉換,設定單位以方便計算。 文章目錄 1、柵格資料面積計算 方法一:新增欄位並計算 方法二:以表格顯示分割槽統計 2、 向量資料面積計算 1、柵格資料

SQL Server插入資料刪除資料

首先在我的Student表中插入幾條資料,由於我的表已經建立完成了,所以就沒有建立表的 sql 語句了,不過可以看我的上一篇文章: http://www.cnblogs.com/Brambling/p/6649350.html 插入資料sql語句: 1  insert into Student(S

Android使用上下文獲取資料寫入資料

本文是在上一篇博文的基礎上使用上下文儲存使用者名稱和密碼,讀取使用者名稱和密碼的 上一篇博文連結:https://blog.csdn.net/liyunfu233/article/details/84072958 下面是和上一篇博文不同之處,因為修改了儲存資料和讀取資料的形參,所以在Main

風火程式設計--python獲取單隻股票實時資料歷史資料

獲取股票資料 這本來是專門為我的一個單一選股模型提供資料的類, 因此封裝的只是模型中需要的資料. 如有其它需求可以自己擴充套件. 積分多的可以下載檔案, 沒積分的直接複製下面的程式碼是一樣的. 程式碼不復雜, 一看就懂. 歡迎加qq或微信(77245741)共同探討. # cod

定時備份指令碼分享(網站資料資料庫資料

1)網站資料備份 將網站資料/var/www/vhost/www.hqsb.com和/var/www/vhost/www.huanqiu.com分別備份到: /Data/code-backup/www.hqsb.com和/Data/code-backup/www.huanqiu.com下。 &nbs

HDFS寫資料資料流程

HDFS資料儲存 HDFS client上傳資料到HDFS時,首先,在本地快取資料,當資料達到一個block大小時。請求NameNode分配一個block。 NameNode會把block所在的DataNode的地址告訴HDFS client。 HDFS client會直接和DataNode通訊,把資料寫

json的四大函式介紹(json資料python資料之間的轉換)

json的四大函式介紹 在我們進行後端開發和爬蟲開發的時候,常會遇到json資料和python資料的轉換, 而這些轉換雖然簡單,但是卻很容易讓人產生混淆和困惑, 接下來我將對json資料和python資料格式的轉換做一個小的介紹,希望對各位讀者能夠起到一定的幫助… 1.loa

Sqlite3插入資料查詢資料

1. //表單:Record(USN+有線MAC地址+無線MAC地址) //查詢 #define QUERY_SQL_SN "SELECT * FROM Record WHERE USN = '%s'" #define QUERY_SQL_MAC "SELECT * FRO

SpringBoot利用java反射機制,實現靈活讀取Excel表格中的資料匯出資料至Excel表格

如果直接把固定Excel表格模板中的資料匯入資料庫,直接將Excel中的資料讀取出來,再存入資料庫中即可,將資料匯出至固定的Excel模板方法類似。但是,有時候,開發製作的模板與客戶需要的往往有些許差別(欄位排版、欄位數量等)。為了實現匯入匯出的靈活性,將利用java的反射機

往Flash寫資料資料

一、Flash簡介   通過對stm32內部的flash的讀寫可以實現對stm32的程式設計操作。   stm32的內建可程式設計Flash在許多場合具有十分重要的意義。如其支援ICP(In Circuit Programming,在電路程式設計;線上程式設計)特性使得開發人員對stm32可

plsql 查詢blob資料clob資料型別

好幾次遇到這個問題,只是沒有記錄,這次終於記得要把這點東西給記錄下來 select t.id,t.certdn,t.algo,utl_raw.cast_to_varchar2(dbms_lob.substr(t.plaintext)) plaintext from db_s_

opencv中rgb格式資料base64資料轉換

最近在做一個專案,需要將base64轉成圖片rgb格式。 一般的做法是將base64字串先解碼寫入檔案,然後再去cv2.imread讀取圖片。這樣就繞彎了,如果能夠從base64直接轉為imread得到的rbg矩陣,就會節省時間開銷,具體做法比較簡單: def base6

資料(MS-SQL)表中插入資料更新資料

insert into dbo.time     -- insert data (id,name) values(3, 'herry'); update dbo.time1  set  id=4 where name='coly'   -- update  data