zoukankan      html  css  js  c++  java
  • js调用Webservice接口案例

    第一步:新建Webservice接口

    主文件方法

    using System;
    using System.Collections.Generic;
    using System.Web;
    using System.Web.Services;

    namespace TestWebApplication
    {
    /// <summary>
    /// WebService1 的摘要说明
    /// </summary>
    [WebService(Namespace = "http://10.12.1.90:5555/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    [System.Web.Script.Services.ScriptService]//(AJAX调用必须放开注释,net framwork 4.0版本及更高版本)
    public class WebService1 : System.Web.Services.WebService
    {

    [WebMethod]
    public string HelloWorld()
    {
    var ss = Context.Request.QueryString["fname"];
    return "Hello World"+ ss;
    }

    [WebMethod]
    public string HelloWorld1(string ww)
    {

    Context.Response.Charset = "GB2312"; //设置字符集类型
    Context.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
    Context.Response.Write("success");
    Context.Response.End();

    }
    }

    配置文件Web.config

    <?xml version="1.0"?>
    <configuration>
    <appSettings/>
    <connectionStrings/>
    <!--
    有关 web.config 更改的说明,请参见 http://go.microsoft.com/fwlink/?LinkId=235367。

    可在 <httpRuntime> 标记上设置以下特性。
    <system.Web>
    <httpRuntime targetFramework="4.5" />
    </system.Web>
    -->
    <system.web>
    <!--请求设置-->
    <httpRuntime maxRequestLength="204800" executionTimeout="3600"/>
    <compilation debug="true" targetFramework="4.5"/>
    <!--设置允许http,post,get方式请求-->
    <webServices>
    <protocols>
    <add name="HttpSoap"/>
    <add name="HttpPost"/>
    <add name="HttpGet"/>
    <add name="Documentation"/>
    </protocols>
    </webServices>
    <!--<compilation debug="true" targetFramework="4.0" />-->
    <!--
    通过 <authentication> 节,可配置
    ASP.NET 用于识别进入用户的
    安全身份验证模式。
    -->
    <authentication mode="Windows"/>
    <!--
    通过 <customErrors> 节,可以配置
    在执行请求的过程中出现未处理的错误时要执行
    的操作。具体而言,
    开发人员通过该节可配置要显示的 html 错误页,
    以代替错误堆栈跟踪。

    <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
    <error statusCode="403" redirect="NoAccess.htm" />
    <error statusCode="404" redirect="FileNotFound.htm" />
    </customErrors>
    -->
    <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"/>
    </system.web>
    <system.webServer>
    <httpProtocol>
    <customHeaders>
    <add name="Access-Control-Allow-Methods" value="OPTIONS,POST,GET"/>
    <add name="Access-Control-Allow-Headers" value="x-requested-with,content-type"/>
    <add name="Access-Control-Allow-Origin" value="*"/>
    </customHeaders>
    </httpProtocol>
    </system.webServer>
    </configuration>

    第二步:前台js通过ajax调用Webservice接口(本文件是一个html文件,包含一个按钮,点击按钮,js通过ajax调用Webservice接口)

    <html>
    <head>
    <meta charset="utf-8" />
    <title></title>
    <script type="text/javascript">
    var XMLHttpReq;
    function createXMLHttpRequest() {
    try {
    XMLHttpReq = new ActiveXObject("Msxml2.XMLHTTP"); //IE高版本创建XMLHTTP
    }
    catch (E) {
    try {
    XMLHttpReq = new ActiveXObject("Microsoft.XMLHTTP"); //IE低版本创建XMLHTTP
    }
    catch (E) {
    XMLHttpReq = new XMLHttpRequest(); //兼容非IE浏览器,直接创建XMLHTTP对象
    }
    }
    }

    function sendAjaxRequest(url) {
    //alert(url);
    var json;
    createXMLHttpRequest();
    XMLHttpReq.open("post", url, false);
    XMLHttpReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");//请求头文件设置编码
    XMLHttpReq.onreadystatechange = function () {
    if (XMLHttpReq.readyState == 4) {
    if (XMLHttpReq.status == 200) {
    document.getElementById("myDiv").innerHTMLXMLHttpReq.responseText

    json = eval("(" + XMLHttpReq.responseText + ")");

    }
    }
    }
    XMLHttpReq.send("ww=123");//参数

    return json;
    }
    function loadXMLDoc()
    {
    var xmlhttp;
    if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
    }
    else
    {// code for IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange=function()
    {
    if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
    }
    xmlhttp.open("post","http://localhost:58081/WebService1.asmx/HelloWorld1",false);
    xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    xmlhttp.send("ww=123");

    }
    </script>
    </head>
    <body>

    <h2>AJAX</h2>
    <button type="button" onclick="loadXMLDoc()">请求数据</button>
    <div id="myDiv"></div>
    <body>
    <input id="Button1" type="button" onclick="sendAjaxRequest('http://localhost:58081/WebService1.asmx/HelloWorld1')" value="button" />

    </body>
    </body>
    </html>

  • 相关阅读:
    基于深度学习的单目图像深度估计
    OpenCV探索之路(二十三):特征检测和特征匹配方法汇总
    TensorFlow练习24: GANs-生成对抗网络 (生成明星脸)
    深度估计&平面检测小结
    论文翻译——Rapid 2D-to-3D conversion——快速2D到3D转换
    Opencv改变图像亮度和对比度以及优化
    如何将OpenCV中的Mat类绑定为OpenGL中的纹理
    Eclipse控制台中文乱码
    给java中的System.getProperty添加新的key value对
    中文简体windows CMD显示中文乱码解决方案
  • 原文地址:https://www.cnblogs.com/1175429393wljblog/p/9959573.html
Copyright © 2011-2022 走看看