首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 昨天就没能解决,大家帮忙,ajax调用web service的问题
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • symbol_bc
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 结帖率:
    发表于:2008-08-25 08:53:51 楼主
    我正在做一个关于google map api的项目,其中我要用 google map api 定义的ajax接口调用webservice,
    我在本机做测试的时候完全没有问题,但是在本地浏览项目中的页面时将http://localhost/project/aa.aspx换成http://本机ip/project/aa.aspx时,单机调用webservice的按钮就跳出脚本提示“没有权限”,然后做了许多的配置,包括赋予匿名登录权限,在iis中降低应用程序的安全级别等等,还是不行,部署在公网服务器上访问更加不行。
    这到底是什么方面的原因呢?
    我是第一次做异步的系统,我不知道项目中如果有webservice是不是要特殊的部署,请大家谈谈。
    另外我还想问两个问题:
    1.ajax到底能不能调用一个普通页面后台的方法,注意:我可不是说给页面一个请求让他返回整个页面的html,我是说访问他后台的一个方法,给方法传参数,然后返回结果。
    2.项目中使用web service 一定要添加“web 引用”是吗?就算是自己项目中的web service.
    40  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • HW_zxc_0081
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-25 08:54:151楼 得分:0
    up
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • symbol_bc
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-25 08:55:492楼 得分:0
    多谢2楼帮顶
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • symbol_bc
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-25 08:56:383楼 得分:0
    呵呵 多谢一楼帮顶
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • symbol_bc
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-25 08:59:594楼 得分:0
    顶到高手来
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • tm62490309
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-25 09:48:265楼 得分:0
    AJAX能调用 后台的方法 并且传参
    给你个  我用AJAX做登陆的例子

    JS文件

    var xmlHttp;
    function IMG1_onclick()
    {

        CheckIsValid();
    }
    function CheckIsValid()
    {
        CreatXmlHttpRequest();
        var userName=document.getElementById("admin");
        var passWord=document.getElementById("password");
        var url="CheckLogin.aspx?q="+userName.value+"&m="+passWord.value;
        xmlHttp.open("GET",url,true);
        xmlHttp.onreadystatechange=callback;
        xmlHttp.send(null);
    }
    function CreatXmlHttpRequest()
    {
        try
        {
            xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e)
        {
            try
            {
                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e2)
            {
                xmlHttp = false;
            }
        }
        if (!xmlHttp && typeof XMLHttpRequest != 'undefined')
        {
            xmlHttp = new XMLHttpRequest();
        }
    }

    function callback()
    {
      if(xmlHttp.readyState==4)
        {
            if(xmlHttp.status==200)
            { 
                var mes=xmlHttp.responseXML.getElementsByTagName("message")[0].firstChild.data;
                var val=xmlHttp.responseXML.getElementsByTagName("passed")[0].firstChild.data;
                setMessage(mes,val);
            }
        }
    }
    function setMessage(message,isValid)
    {
        var messageArea=document.getElementById("MessageTip");
        var  blockUI=document.getElementById("blockUI");
        if(isValid =="True")
        {
            alert(message);
            messageArea.style.display="none";
            blockUI.style.display="none";
        }
        else
        {
          alert(message);
        }
    }

    方法:

    protected void Page_Load(object sender, EventArgs e)
        {
            Response.Cache.SetCacheability(HttpCacheability.NoCache);

            Response.ContentType = "text/xml";
            bool passed = ValiLogin(Request["UserName"], Request["PassWord"]);
            String message = "用户名或密码错误。解锁失败";
            if (passed)
            {
                message = "解锁成功";
            }
            string textxml;
            textxml = " <response>" + " <passed>" + passed.ToString() + " </passed>" + " <message>" + message + " </message>" + " </response>";

            Response.Clear();
            Response.Write(textxml);
            Response.Flush();
            Response.End();

        }
        private bool ValiLogin(string userName, string passWord)
        {
            string str_mac = "";
            bool isPassed = true;

            if (myLogin.Login(this.Page, userName, passWord, str_mac)) //myLogin.Login是一个做登陆验证的方法
            {
                isPassed = true;
            }
            else
            {
                isPassed = false;
            }
            return isPassed;
        }

    .aspx.cs代码

    <div style='padding:10px;'>
       
        <div style='text-align:center;padding:10px'>
        用户名: <input id="admin" type="text" /> </div>
        <div style='text-align:center;padding:10px'>
        密&nbsp;&nbsp;&nbsp;&nbsp;码: <input id="password" type="password" /> </div>
       

      </div>

    <div style='text-align:center;clear:both;padding:10px'>
    <input  type='button' value = ' 确  定 'onclick="return IMG1_onclick()" />
    </div>
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved