WebService学习笔记-Ajax请求Webservice

来源:互联网 发布:淘宝是猫京东是狗 编辑:程序博客网 时间:2024/05/17 01:15

Webservice地址为 http://192.168.13.232:8989/ws_01/umgsai

JSP页面地址为 http://192.168.13.232:8080/Demo/index.jsp


Webservice的请求体如下

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:q0="http://ws.umgsai.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">  <soapenv:Body>    <q0:sayHello>      <arg0>sa</arg0>    </q0:sayHello>  </soapenv:Body></soapenv:Envelope>


Webservice的响应体如下

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">  <S:Body>    <ns2:sayHelloResponse xmlns:ns2="http://ws.umgsai.com/">      <return>Hello sa</return>    </ns2:sayHelloResponse>  </S:Body></S:Envelope>


JSP页面如下

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title><script type="text/javascript" src="js/jquery-1.11.1.min.js"></script><script type="text/javascript">var url = "http://192.168.13.232:8989/ws_01/umgsai";$(function(){$("#WebserviceJQuery").click(function(){var name = document.getElementById("username").value;//请求体var data = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:q0="http://ws.umgsai.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><q0:sayHello><arg0>' + name + '</arg0></q0:sayHello></soapenv:Body></soapenv:Envelope>';/*$.post(url, data, function(msg){var $Result = $(msg);var value = $Result.find("return").text();alert(value);},"xml");*/$.ajax({type:"POST",url:url,data:data,success:function(msg){var $Result = $(msg);var value = $Result.find("return").text();alert(value);},error:function(msg){alert("错误信息:" + msg);},datatype:"xml",contentType:"text/xml;charset=utf-8"});});});function reqWebservice() {var name = document.getElementById("username").value;//请求体var data = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:q0="http://ws.umgsai.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><q0:sayHello><arg0>' + name + '</arg0></q0:sayHello></soapenv:Body></soapenv:Envelope>';var request = GetXmlHttpObject();request.onreadystatechange = function(){if(request.readyState == 4 && request.status == 200){var result = request.responseXML;//alert(result);var returnElement = result.getElementsByTagName("return")[0];var value = returnElement.firstChild.data;alert(value);}};//响应体 <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">/*<S:Body>    <ns2:sayHelloResponse xmlns:ns2="http://ws.umgsai.com/">      <return>Hello sa</return>    </ns2:sayHelloResponse>  </S:Body></S:Envelope>*/request.open("POST", url);request.setRequestHeader("Content-type", "text/xml;charset=utf-8");request.send(data);}function GetXmlHttpObject() {var xmlHttp = null;try {// Firefox, Opera 8.0+, SafarixmlHttp = new XMLHttpRequest();} catch (e) {// Internet Explorertry {xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");} catch (e) {xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");}}return xmlHttp;}</script></head><body>name:<input id="username" name="username" value="" /><button onClick="reqWebservice()">Ajax请求Webservice</button><button id="WebserviceJQuery">Ajax请求Webservice with JQuery</button></body></html>


存在跨域访问的问题,只能通过 http://192.168.13.232:8080/Demo/index.jsp 来访问。

通过 http://localhost:8080/Demo/index.jsp来访问是提示错误。



本文出自 “优赛工作室” 博客,请务必保留此出处http://shamrock.blog.51cto.com/2079212/1563938

0 0
原创粉丝点击