解決 AngularJs $http 傳送post,get請求,SpringMvc無法接受引數的問題。
1.問題原因
預設情況下,jQuery傳輸資料使用Content-Type: x-www-form-urlencodedand和類似於"name=zhangsan&age=18"的序列,
然而AngularJS,傳輸資料使用Content-Type: application/json和{ "name": "zhangsan", "age": "18" }這樣的json序列。
2.解決辦法
A. 服務端進行修改,在Controller接收引數的方法中,物件前加 @RequestBody (注:要用物件的方式來接引數)
作用:
i) 該註解用於讀取Request請求的body部分資料,使用系統預設配置的HttpMessageConverter進行解析,然後把相應的資料繫結到要返回的物件上;
ii) 再把HttpMessageConverter返回的物件資料繫結到 controller中方法的引數上。
ok ,但是解決了angular問題之後,發現jquery按照原來的方式提交post請求會報錯(錯誤碼415)。
如下方式可以解決jquery提交問題:
json物件轉json字串:JSON.stringify( "name": "zhangsan", "age": "18" );
B. 客戶端修改(推薦)
方案1 更改$http 的提交格式
$http.post(url,{},{params:{"name": "zhangsan", "age": "18"}}).success(function(data){
});
$http.get(url,{params:{"name": "zhangsan", "age": "18"}}).success(function(data){
});
方案2 修改請求頭,Content-Type 的值,並將傳輸的物件進行序列化。
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
transformRequest: function(obj) {
var str = [];
for (var s in obj) {
str.push(encodeURIComponent(s) + "=" + encodeURIComponent(obj[s]));
}
return str.join("&");
}
相關推薦
HTTP傳送post、put請求,帶header、body的工具類,附呼叫測試demo
HTTP請求方法(可直接copy至你的工具類,屢試不爽) import com.alibaba.fastjson.JSONObject; import java.io.*; import java.ne
C#模擬http 傳送POST或GET請求
1、POST: private string HttpPost(string Url, string postDataStr, CookieCollection cookies)
JAVA使用http傳送post或get請求例項
package wzh.Http; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.n
解決 AngularJs $http 傳送post,get請求,SpringMvc無法接受引數的問題。
1.問題原因 預設情況下,jQuery傳輸資料使用Content-Type: x-www-form-urlencodedand和類似於"name=zhangsan&age=18"的序列, 然而AngularJS,傳輸資料使用Content-Type: appl
java 傳送POST、GET請求時,獲取請求的頭資訊Set-Cookie,請求攜帶Cookie
需求背景 1、前端在請求時遇到跨域請求,連續的請求之間需要攜帶上一次的Cookie,前端不便於實現。 2、所以需要後端實現Cookie的獲取與請求攜帶,實現請求服務的代理請求。 可行性分析 1、 cookie (儲存在使用者本地終端上的資料)
Java後臺傳送Post和get請求 (並解決返回值亂碼問題)
public class HttpRequest { /** * 向指定URL傳送GET方法的請求 * * @param url * 傳送請求的URL * @param param * 請求引數,
【http】post和get請求的區別
方式 無限制 信息 資源 敏感信息 字符 瀏覽器歷史記錄 指定 較差 兩種常用的HTTP請求方式:post和get get:從指定的資源進行請求。數據長度有限制(2048個字符)可被緩存、可被保留在瀏覽器歷史記錄中,安全性較差。發送敏感信息如密碼時不適用。 post
requests傳送post、get請求
1、最基本的POST請求可以使用post方法 response = requests.post("http://www.baidu.com",data=data) 2、穿入data 這時候就不要使用urlencod
使用JavaScript的XMLHttpRequest傳送POST、GET請求以及接收返回值
使用XMLHttpRequest物件分為4部分完成: 1.建立XMLHttpRequest組建。 2.設定回撥函式。 3.初始化XMLHttpRequest組建。 4.傳送請求。 var userName; var passWord; var x
Java實現模擬傳送POST、GET請求
—————————————————————————————————— [java] view plain copy print?import org.apache.http.HttpEntity; import org.apache.http.client.config.RequestConfig;
使用httpclient實現後臺java傳送post和get請求
專案中會遇到需要傳送請求獲取不同伺服器中的資源,此時不能使用轉發或者重定向,而使用httpclient可以實現。下面介紹httpclient中的get請求和post請求: GET方法: public static String doGet() {
C# 使用HTT傳送POST、GET請求
實習單位需要測試c#與單位某軟體的對接情況,讓我負責c#通過HTTP傳送POST、GET請求 C# POST、GET請求主要涉及兩個類HttpWebRequest和HttpWebResponse,前者用來寫入資料,後者用來接收返回資料 程式碼如下: POST: public
httplicent傳送post或get請求
1 /** 2 * get請求,引數放在map裡 3 * @param url 請求地址 4 * @param map 引數map 5 * @return 響應 6 */ 7 public String getMap(String u
CURL命令實現HTTP的POST和GET請求
一、get請求 curl “http://www.baidu.com” 如果這裡的URL指向的是一個檔案或者一幅圖都可以直接下載到本地 二、post請求 curl -d “param1=value1¶m2=value2”
向指定URL傳送POST或GET請求工具類-JAVA專案
如題,傳送GET或Post請求的工具類, 這個在很多專案中都會有用到的package util; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamRe
java使用Httpclient傳送post和get請求
做專案的時候需要使用到遠端呼叫某個介面,採用簡單的httpclient是一個不錯的選擇;採用http傳送請求最核心的程式碼是httpClient.execute(httpPost) 下面是我專案中使用的工具類HttpClientUtil ,可以直接進行呼叫
curl傳送post和get請求
1.cURL介紹 cURL 是一個利用URL語法規定來傳輸檔案和資料的工具,支援很多協議,如HTTP、FTP、TELNET等。最爽的是,PHP也支援 cURL 庫。本文將介紹 cURL 的一些高階特性,以及在PHP中如何運用它。 2.基本結構 在學
使用HttpClient傳送post和get請求
需要的jar包: pom檔案: <dependency> <groupId&g
JAVA傳送HTTP請求(post、get),讀取HTTP響應內容,例項及應用
JDK中提供了一些對無狀態協議請求(HTTP)的支援,下面我就將我所寫的一個小例子(元件)進行描述: 首先讓我們先構建一個請求類(HttpRequester)。 該類封裝了JAVA實現簡單請求的程式碼,如下: import java.io.BufferedReader;
Post,Get請求亂碼的原因和解決方案
閱讀須知: 在每個頁面的開頭處,都會有一行: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> contentType="text/html