jquery发送put请求_浅谈GET,POST,PUT发送请求
一般我們在瀏覽器的地址欄輸入網址回車后,發送的是GET請求
當用表單提交時(最普遍的是用戶登錄),我們可以指定是GET還是POST請求,這里需要注意的是有的瀏覽器并不支持PUT請求,那后臺restful的PUT請求對應的方法豈不是不能用了
SpringMVC為我們提供了一種解決方案,
1
2
3
我們還是用POST方式,但是我們添加了一個名為_method的隱藏域,并且值為put,同時需要在web.xml中添加一個Filter,如下:
1
2
3
4
5
6
7
8
HiddenHttpMethodFilter
org.springframework.web.filter.HiddenHttpMethodFilter
HiddenHttpMethodFilter
mcpMvc
這樣雖然發送的仍然是POST請求,但是該Filter會把其轉成PUT請求這樣就可以調用PUT相應的方法了
這樣做的缺點是前端頁面我們需要額外添加一個隱藏域什么的
下面結合springMVC探討一下JQuery發送AJAX請求的一些事
一般我們發送請求的代碼如下:
1
2
3
4$.ajax({
type :'get',
url :'http://localhost/TestSpring3.2R/coc/body?name=tom'
}); 或者如下:
1
2
3
4
5
6var mydata = {'name':'tom'};
$.ajax({
type :'get',
url :'http://localhost/TestSpring3.2R/coc/body',
data : mydata
}); 那么這2種有什么區別呢?
經試驗發現對于GET和POST方式,這2中沒什么差別
但是對于PUT,第一種的參數可以順利傳入,但是第二種的參數就不能接受了,那么我們怎么才能得到第二種方式所穿的參數呢?
這里我們可以使用@RequestBody
@RequestBody對于GET請求是沒有意義的
對于POST請求,無論你是使用第一種方式還是第二種方式,異或是2種方式同時使用,他會把所有的參數當放到@RequestBody所對應的那個參數里,輸出的結果類似:
1id=ff&status=gg&name=ee
如果你要用到參數,你需要自己處理
對于PUT請求 @RequestBody所對應的那個參數的值就是通過第二種方式傳進來來的值
------------------------------------我是分割線--------------------------------------
對于SpringMVC,它提供了MultiValueMap這個類,我們可以這樣來接受參數
1
2
3@RequestMapping(value ="/", produces ="application/json;charset=UTF-8", method = RequestMethod.PUT)
@ResponseBody
public Map updateUser(@RequestBody MultiValueMap valueMap){ 他回把你傳過來的參數,放到valueMap里,這個接口繼承于Map>,key就是傳過來的參數名,value就是參數值,由于可能存在同名的參數,所以value的類型是List,這樣我們就可以很方便的取得參數值了
來自:http://blog.csdn.net/mfe10714022/article/details/39692305
總結
以上是生活随笔為你收集整理的jquery发送put请求_浅谈GET,POST,PUT发送请求的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 香港有个鬼片叫《我的左眼见到鬼》,我也想
- 下一篇: json qbytearray 串 转_