如何通过js跨域调用WebService?

如何通过js跨域调用WebService?

步骤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/json;charset=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/AntiWebQuery_Ajax?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> 

以上就是小编为大家带来的js跨域调用WebService的简单实例的全部内容了,希望对大家有所帮助,多多支持路饭~