使用jquery的ajax方法調用webservice服務於使用純js的ajax方式調用webservice服務的區別主要在於
前者能在ie、chrome、firefox上正常運行,而後者只能在ie中正常運行,而且前者純在跨域訪問問題
1、建立一個名為CXF_1_Client 的web project,並將使用基於spring方式調用webservice服務的方式產生好的用戶端代碼粘貼到新的項目中,
並將cxf核心jar包導進lin目錄下
2、將jquery的jar檔案導進去
3、jquery_ws.html
在webroot下建立一個名為jquery_ws.html的html檔案,代碼如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>jquery_wsl.html</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="this is my page"> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <!--<link rel="stylesheet" type="text/css" href="./styles.css">--> <script type="text/javascript" src="js/jquery-1.6.2.js"></script> <script type="text/javascript"> function sendMsg(){ $.ajax({ url: 'http://localhost:8080/CXF_3/cxf/hi', type:'post', dataType:'xml', contentType:'text/xml;charset=utf-8', data:'<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns2:sayHi xmlns:ns2="http://cxf.njupt.com/"><arg0>章澤天,是我們java程式員的女神</arg0></ns2:sayHi></soap:Body></soap:Envelope>', success:function(data,status,xhr){ var v = $(data).find('return').eq(0).text(); alert(v); }, error:function(){ alert('error'); } }); } </script> </head> <body> <input type="button" value="使用jquery的ajax方法調用webservice服務" onclick="sendMsg()"/> </body></html>
4、把CXF_1_client部署到tomcat上
5、在地址欄中輸入http://localhost:8080/CXF_1_Client/jquery_ws.html進行測試
以下附上jquery的跨域訪問問題的圖解: