最近在項目中需要使用javascript調用webservice,從中遇到了幾個問題,如果哪位高手知道的話,麻煩幫忙解答一下。
1、在網上找了好久,沒找到webbehavior.htc檔案的;
2、如何解決javascript調用webservice的跨域問題;
下面是自己在網上收集整理的javascript調用webservice的實現方式:
方法一、(自己實現,所遇問題:不能解決跨域的問題)
當flag=SOAPClient.invoke("http://localhost/GZPI/PublicWebService/WriteGraduater.asmx" , "GetGraduaterPorcessInfo", pl, false) 時,調用沒有任何問題;
當flag=SOAPClient.invoke("http://192.168.65.26/GZHR/WebServices/SYDWReturnDataService.asmx" , "ReceiveResult", pl, false)時,提示"沒有許可權"的錯誤!
<script language="javascript" src="soapclient.js" charset="gb2312"></script>
<script language="javascript" type="text/javascript">
function UseWebServices()
{
var idcode="440523197209085275"; //社會安全號碼
var Isgz ="1"; //是否廣州戶口 公務員:是否廣州市戶口(0:是1:否) 事業單位:是否廣州市戶口(1:是2:否)
var flag = false;
var SysID=1; //系統ID,1表示高校畢業生系統,2表示人才引進系統;
if(Isgz=="1")
{
var pl = new SOAPClientParameters();
pl.add("user", {UserName:"gwy@900001",Password:"123456"} );
pl.add("idcode",idcode);
flag=SOAPClient.invoke("http://172.16.128.84:8089/GZPI/PublicWebService/WriteGraduater.asmx" , "GetGraduaterPorcessInfo", pl, false);
if(flag==false)
{
SysID=2;
flag=SOAPClient.invoke("http://172.16.128.84:8089/GZPI/PublicWebService/WritePerson.asmx" , "GetGraduaterPorcessInfo", pl, false);
}
alert(flag);
if(flag==true)
{
if(SysID==1)
{
return confirm('該人員已在高校畢業生系統中申報,是否繼續?');
}
else
{
return confirm('該人員已在人才引進系統中申報,是否繼續?');
}
}
}
}
function WebServices()
{
var reply
var flag=false;
var pl = new SOAPClientParameters();
pl.add("ID","111111" );
pl.add("Result","成功");
//pl.add("Reply",reply);
flag=SOAPClient.invoke("http://192.168.65.26/GZHR/WebServices/SYDWReturnDataService.asmx" , "ReceiveResult", pl, false);
alert(flag);
//alert(reply);
alert(pl[1]);
}
</script>