<script>标签内的js代码,可以通过对应html标签的属性(例如image的src属性),来调取webservice上的对应文件;
也可以通过xmlHttpRequest对象来请求webservice上的脚本文件(如php),来使用返回此脚本文件返回的结果。
js 主要用于做客户端处理,不与服务器打交道,你这个是与服务器端打交道了,属于特殊情况。你可以用 createobject 调用组件,从而实现与服务端通信。AJAX 、 JS 的ADO 数据库连接、JSON都是这样做的。步骤1. 在web.config中的system.web节点里加入<!--此节点可允许脚本跨域调用webservice-->
<webServices>
<protocols>
<add name="HttpPost"/>
<add name="HttpGet"/>
</protocols>
</webServices>
<!--此节点可允许脚本跨域调用webservice-->
步骤2. webservice代码
using System
using System.Collections.Generic
using System.Linq
using System.Web
using System.Web.Services
using System.Web.Mvc
namespace WebService
{
/// <summary>
/// WebService1 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
[System.Web.Script.Services.ScriptService]
public class WebService1 : System.Web.Services.WebService
{
[ValidateInput(false)]
[WebMethod(Description = "测试")]
public void getDBTableInfos(string EnterpriseCode)
{
HttpContext.Current.Response.ContentType = "application/jsoncharset=utf-8"
string jsonCallBackFunName = string.Empty
jsonCallBackFunName = HttpContext.Current.Request.Params["jsoncallback"].ToString()
HttpContext.Current.Response.Write(jsonCallBackFunName + "({ \"Result\": \"" + EnterpriseCode + "\" })")
}
}
}
步骤3. html页面部分
<!DOCTYPE html>
<html>
<head>
<title>Index</title>
<script src="http://www.cnblogs.com/Scripts/jquery-1.5.1.js" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
$("#btnSubmit").click(function () {
var EnterpriseCode = "39"
var dataStr = "EnterpriseCode=" + EnterpriseCode
$.ajax({
type: "get",
url: "http://xxx/xxx.asmx/getDBTableInfos?jsoncallback?",
dataType: "jsonp",
jsonp: 'jsoncallback',
data: dataStr,
success: function (result) {
//返回结果
alert(result.Result)
}
})
})
})
</script>
</head>
<body>
<div>
<input id="btnSubmit" type="button" value="查询" />
</div>
</body>
</html>