java跨域请求,且附上前端跨域请求代码
生活随笔
收集整理的這篇文章主要介紹了
java跨域请求,且附上前端跨域请求代码
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
為了跟上新的潮流,學習前后端分離的概念及技術是必須的,跨域也隨之而產生。
首先確定什么是前后端分離,它不僅是對代碼的解耦,也是對開發人員的解耦,真正的前端是前端,后臺是后臺,開發速度至少快一倍。
即你是后臺,可以不用寫太多前端代碼,設計什么ui等等,都交給了前端人員,
前端人員也是如此。
說到底,還是有人關心在這種模式該使用什么數據格式通信,無疑是json.
在此之后隨之而來的是很多的跨域問題。
首先跨域請求需要一些關于計算機網絡的知識補充,你需要在請求中設置一些特殊信息來規定怎么跨域。
關于域的同源與不同源:
通過協議(http,https),ip,port,三者兩兩組合每一個為一種情況,每一種都是不同源,
僅者都相同時才是同源。
關于常見跨域的方式簡介:
cors與jsonp
介紹幾個關于response的header信息:
| Access-Control-Allow-Headers | 允許哪個地址訪問,可以設參數任何即*,或者某一特定http://ip:port,必須 |
| Access-Control-Allow-Credentials | 設為參數布爾值true,允許攜帶cookies,必須 |
| Access-Control-Max-Age | 是否在下次請求時緩存上次的請求結果,參數為時間ms |
| Access-Control-Allow-Methods | 允許那些形式的請求方法通過,例如get,post… |
加一段服務端java的filter代碼:
// 簡單Accept, Accept-Language, Content-Language, Content-Type與不簡單請求// Accept// Accept-Language// Content-Language// Last-Event-ID// Content-Type,但僅能是下列之一// application/x-www-form-urlencoded// multipart/form-data// text/plain// response2.setHeader("Access-Control-Allow-Headers", "Content-Type:");// 請求最大連接時長,不需要再發送預檢驗請求,可以緩存該結果// response2.setHeader("Access-Control-Max-Age", "300");// 統一utf-8//response2.setHeader("Content-Type", "application/json");// 允許所有域的訪問response2.setHeader("Access-Control-Allow-Origin", "http://localhost:5501");// 允許攜帶cookiesresponse2.setHeader("Access-Control-Allow-Credentials", "true");再加一段前端的跨域ajax請求代碼:
$.ajax({type: 'post',url: 'index/selectAllByPage.action',data: {'limit': limit,'page': obj.curr//Math.floor(count/10)},xhrFields: {withCredentials: true},dataType: 'json',success: function(result) {if (result === "") {$('#index_comment').append("請求錯誤!");return false;}});}});其中:
xhrFields: {withCredentials: true},很重要,是ajax跨域的條件之一,不然不能提交數據
ok,大概就是這樣
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的java跨域请求,且附上前端跨域请求代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于mysql数据库的外键插入报错:Ca
- 下一篇: 2017年html5行业报告,云适配发布