zoukankan      html  css  js  c++  java
  • ASP.NET中JS简单调用webservices的方法

    文地址:ASP.NET中JS简单调用webservices的方法  




    嗯,JS调用WebService一共有两种做法吧,呵呵,我就知道这两种,路过的朋友如果知道还有其它的方法,还请指点下,共同进步么,呵呵。嗯,直接贴源码吧。
    法一:
    <%@
    Page Language="C#" CodeFile="Default.aspx.cs" Inherits="_Default"
    %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html
    xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1"
    runat="server">

    <title>测试javascript调用WebService</title>

    <script type="text/javascript" language=javascript>

    function test()

    {

    //实际上HelloWorld函数中只有一个参数,这里的第2个"test2"是用来接收返回值的

    //如果没有返回值则不需要

    WebService.HelloWorld("Qinggeer",test2);

    }
    function test2(str)

    {

    alert(str);
    }

    </script>
    </head>
    <body>
    <form
    id="form1" runat="server">
    <asp:ScriptManager
    ID="ScriptManager1"
    runat="server">

    <Services>

    <asp:ServiceReference Path="WebService.asmx"
    />

    </Services>

    </asp:ScriptManager>
    <input id="Button1"
    type="button" value="button" onclick="javascript:test();"
    />

    </form>
    </body>
    </html>
    WebService代码:

    using
    System;
    using System.Web;
    using System.Collections;
    using
    System.Web.Services;
    using System.Web.Services.Protocols;


    ///
    <summary>
    /// WebService 的摘要说明
    ///
    </summary>
    [WebService(Namespace =
    "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo =
    WsiProfiles.BasicProfile1_1)]
    [System.Web.Script.Services.ScriptService]
    public
    class WebService : System.Web.Services.WebService {


    public WebService () {


    //如果使用设计的组件,请取消注释以下行

    //InitializeComponent();
    }


    [WebMethod]
    public string HelloWorld(string str)
    {
    return
    str;
    }

    [WebMethod]
    public string SayHello(string
    Name)
    {

    return "Hello " + Name;
    }

    }
    法二:
    <%@ Page
    Language="C#" CodeFile="Test.aspx.cs" Inherits="Test" %>

    <!DOCTYPE
    html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html
    xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>
    Call
    webservice with javascript and
    xmlhttp.
    </title>
    </head>

    <script
    language="javascript" type="text/javascript">
    function
    RequestByGet(url,data)

    {
    var
    xmlhttp;

    try

    {

    xmlhttp= new
    ActiveXObject("Microsoft.XMLHTTP");

    }

    catch(e)

    {

    try

    {

    xmlhttp=new
    ActiveXObject("Msxml2.XMLHTTP");

    }

    catch(E)

    {

    xmlhttp=null;

    }

    }

    if(!xmlhttp&&typeof(XMLHttpRequest)!=="undefined")

    {

    xmlhttp=new
    XMLHttpRequest();

    }

    xmlhttp.Open("GET",url,
    false);

    xmlhttp.Send(data);

    var result =
    xmlhttp.status;

    if(result==200)

    {

    document.write(xmlhttp.responseText);

    }
    xmlhttp
    = null;

    }


    function RequestByPost(url,value)

    {
    var
    xmlhttp;

    try{

    xmlhttp= new
    ActiveXObject("Microsoft.XMLHTTP");

    }

    catch(e)

    {

    try

    {

    xmlhttp=new
    ActiveXObject("Msxml2.XMLHTTP");

    }

    catch(E)

    {

    xmlhttp=null;

    }

    }

    if(!xmlhttp&&typeof(XMLHttpRequest)!=="undefined")

    {

    xmlhttp=new
    XMLHttpRequest();

    }

    xmlhttp.Open("POST",url,
    false);

    xmlhttp.SetRequestHeader ("Content-Type","text/xml;
    charset=gb2312");

    xmlhttp.Send(data);

    document.write(
    xmlhttp.responseText);

    }
    </script>
    <body>
    <input type="button"
    value="CallWebserviceByGet"
    onClick="RequestByGet('http://localhost:2096/AJAXEnabledWebSite1/WebService.asmx/SayHello?Name=Qinggeer',null)">

    </body>

    </html>

    嗯,第二种方法的,如果调用不成功或提示“因
    URL 意外地以xxx结束,请求格式无法识别”,要在webservice的 <system.web>
    节点下加入

    <webServices>

    <protocols>

    <add name= "HttpPost"
    />

    <add name= "HttpGet"
    />

    </protocols>
    </webServices>
  • 相关阅读:
    算法市场 Algorithmia
    Cucumber
    TeamCity 持续集成工具
    自动化测试
    Selenium
    Android耗时操作
    RecyclerView
    Android报错
    Lakeshore
    BaaS_后端即服务 RESTful
  • 原文地址:https://www.cnblogs.com/sgivee/p/2584171.html
Copyright © 2011-2022 走看看