有時候在製做網站的時候,可能要跨域調取數據,好比在在兩個服務器兩個數據庫的兩個用戶表中的數據,都要求能夠登錄同一個網站,這個時候咱們可能需須要用ajax跨服務器調取數據javascript
首先可能須要咱們先了解一下ajax,我最先接觸ajax其實就是在註冊時候作動態驗證,當時我就很奇怪,Htm頁面怎麼還能無刷新驗證用戶名,手機號碼,身份證號等是否存在(小白了我....)後來在實際作項目的時候,本身也使用到了簡單的ajax,好比咱們有一個Htm的首頁index.htm可是,首頁中的新聞須要是動態更新的,因此這個時候咱們就須要使用ajax來實如今靜態頁面中動態更新新聞內容的效果,其實這個相似於在靜態頁中引用了一個iframe,每次有人訪問的時候,iframe裏邊的jsp都會發生動態變化html
下邊有個例子:java
<div class="maple"> Loding... </div> <script type="text/javascript"> jQuery.post("ajax.jsp",{"flag":"index_gsxw_maple"},function(data){ jQuery(".maple").html(data); }); </script>
上邊的這個例子是說,剛開始class名爲maple的這個層裏放的是一個Loding(就是在打開頁面到數據加載之間出現的),而後咱們調用jQuery中的方法,向ajax.jsp發送一個請求,其實就是相似提交了一個表單,表單裏邊有個字段叫flag,他的值是index_gsxw_maple,固然,這個能夠無所謂,若是你的ajax.jsp中只處理一個邏輯的話,想當於咱們訪問了ajax
http://xxx.xxx.com/ajax.jsp?flag=index_gsxw_maple數據庫
而後,咱們在ajax.jsp中把新聞經過數據庫調取出來,而後帶有必定格式的打印出來(out.print),下邊咱們就須要把ajax.jsp中的數據原樣顯示出來了?顯示到哪呢?jQuery(".imaple").html(data);data就是ajax.jsp返回的東西跨域
以上爲一個簡單的ajax的應用,實際過程當中,咱們極可能傳遞好多參數服務器
好比我接下來要說的跨站訪問用戶名密碼,首先咱們須要有一個頁面,這個頁面中咱們作以下處理:jsp
訪問這個頁面的時候,咱們須要傳遞兩個參數,用戶名(user_name)密碼(passw),咱們獲得這兩個參數以後,在當前頁面數據庫中進行相應的查找,若是用戶名密碼正確,咱們返回1,若是錯誤,咱們返回-1,這樣的話咱們就能夠在別的網站登陸的時候,驗證該頁面所在網站的用戶名和密碼了post
這個過程須要用到jQuery封裝的一個方法網站
jQuery.getJSON("http://www.xxx.com/yanzheng.jsp?user_name="+a+"&passw="+b+"&callback=?",function(data){ var obj = data; if(obj.status!=-1){ alert('登陸成功'); }else{ alert('登陸失敗,請檢查用戶名密碼'); } });
這個咱們會在yanzheng.jsp這個頁面返回一個錯誤,固然正確的就返回1了
out.print("({ status:'-1'})");