1. 程式人生 > >解決 AngularJs $http 傳送post,get請求,SpringMvc無法接受引數的問題。

解決 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 傳送POSTGET請求

1、POST:   private string HttpPost(string Url, string postDataStr, CookieCollection cookies)        

JAVA使用http傳送postget請求例項

package wzh.Http; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.n

解決 AngularJs $http 傳送postget請求SpringMvc無法接受引數的問題

1.問題原因 預設情況下,jQuery傳輸資料使用Content-Type: x-www-form-urlencodedand和類似於"name=zhangsan&age=18"的序列, 然而AngularJS,傳輸資料使用Content-Type: appl

java 傳送POSTGET請求獲取請求的頭資訊Set-Cookie請求攜帶Cookie

需求背景 1、前端在請求時遇到跨域請求,連續的請求之間需要攜帶上一次的Cookie,前端不便於實現。 2、所以需要後端實現Cookie的獲取與請求攜帶,實現請求服務的代理請求。 可行性分析 1、 cookie (儲存在使用者本地終端上的資料)

Java後臺傳送Postget請求 (並解決返回值亂碼問題)

public class HttpRequest { /** * 向指定URL傳送GET方法的請求 * * @param url * 傳送請求的URL * @param param * 請求引數,

httppostget請求的區別

方式 無限制 信息 資源 敏感信息 字符 瀏覽器歷史記錄 指定 較差 兩種常用的HTTP請求方式:post和get get:從指定的資源進行請求。數據長度有限制(2048個字符)可被緩存、可被保留在瀏覽器歷史記錄中,安全性較差。發送敏感信息如密碼時不適用。 post

requests傳送postget請求

1、最基本的POST請求可以使用post方法     response = requests.post("http://www.baidu.com",data=data) 2、穿入data     這時候就不要使用urlencod

使用JavaScript的XMLHttpRequest傳送POSTGET請求以及接收返回值

使用XMLHttpRequest物件分為4部分完成: 1.建立XMLHttpRequest組建。 2.設定回撥函式。 3.初始化XMLHttpRequest組建。 4.傳送請求。 var userName; var passWord; var x

Java實現模擬傳送POSTGET請求

—————————————————————————————————— [java] view plain copy print?import org.apache.http.HttpEntity;  import org.apache.http.client.config.RequestConfig; 

使用httpclient實現後臺java傳送postget請求

專案中會遇到需要傳送請求獲取不同伺服器中的資源,此時不能使用轉發或者重定向,而使用httpclient可以實現。下面介紹httpclient中的get請求和post請求: GET方法: public static String doGet() {

C# 使用HTT傳送POSTGET請求

實習單位需要測試c#與單位某軟體的對接情況,讓我負責c#通過HTTP傳送POST、GET請求 C# POST、GET請求主要涉及兩個類HttpWebRequest和HttpWebResponse,前者用來寫入資料,後者用來接收返回資料 程式碼如下: POST: public

httplicent傳送postget請求

1 /** 2 * get請求,引數放在map裡 3 * @param url 請求地址 4 * @param map 引數map 5 * @return 響應 6 */ 7 public String getMap(String u

CURL命令實現HTTPPOSTGET請求

一、get請求 curl “http://www.baidu.com” 如果這裡的URL指向的是一個檔案或者一幅圖都可以直接下載到本地 二、post請求 curl -d “param1=value1&param2=value2”

向指定URL傳送POSTGET請求工具類-JAVA專案

如題,傳送GET或Post請求的工具類,  這個在很多專案中都會有用到的package util; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamRe

java使用Httpclient傳送postget請求

做專案的時候需要使用到遠端呼叫某個介面,採用簡單的httpclient是一個不錯的選擇;採用http傳送請求最核心的程式碼是httpClient.execute(httpPost) 下面是我專案中使用的工具類HttpClientUtil ,可以直接進行呼叫

curl傳送postget請求

1.cURL介紹   cURL 是一個利用URL語法規定來傳輸檔案和資料的工具,支援很多協議,如HTTP、FTP、TELNET等。最爽的是,PHP也支援 cURL 庫。本文將介紹 cURL 的一些高階特性,以及在PHP中如何運用它。 2.基本結構   在學

使用HttpClient傳送postget請求

需要的jar包:   pom檔案: <dependency> <groupId&g

JAVA傳送HTTP請求postget讀取HTTP響應內容例項及應用

JDK中提供了一些對無狀態協議請求(HTTP)的支援,下面我就將我所寫的一個小例子(元件)進行描述: 首先讓我們先構建一個請求類(HttpRequester)。 該類封裝了JAVA實現簡單請求的程式碼,如下: import java.io.BufferedReader;

PostGet請求亂碼的原因和解決方案

閱讀須知: 在每個頁面的開頭處,都會有一行: <%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="UTF-8"%> contentType="text/html