Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 408|回复: 0

解决jquery调用NET webservice跨域的问题

[复制链接]
  • TA的每日心情
    奋斗
    4 天前
  • 签到天数: 802 天

    [LV.10]以坛为家III

    2053

    主题

    2111

    帖子

    72万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    726006
    发表于 2021-6-13 12:44:04 | 显示全部楼层 |阅读模式

    声明,解决方案由网上收集而来,个人整理。有别人的,也有我的。

    一、webserive端

    1.web.config

    需要在web.config的configuration节点中加入如下的黑体部分内容。

      <system.web>
        <webServices>
          <protocols>
            <add name="HttpGet" />
            <add name="HttpPost" />
          </protocols>
        </webServices>
      </system.web>

    再加入以下内容

      <system.webServer>
        <!--解决跨域请求 by wys -->
        <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>

     

    2.asm.x

    还不清楚是否必须在类前要加上以下内容。没时间测

        [WebService(Namespace = "http://tempuri.org/")]
        [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
        [System.ComponentModel.ToolboxItem(false)]
        // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
        [System.Web.Script.Services.ScriptService]

     

    3.一个方法

            [WebMethod]
            public string getProduct()
            {
                DataTable dt = BizLogic.ProductsBLL.GetProductInfo();
                HttpContext.Current.Response.ContentType = "application/json";
                HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;

                var obj = new
                {
                    Status = 1,
                    Data = dt
                };
                return Newtonsoft.Json.JsonConvert.SerializeObject(obj);
            }

    二。JS部分

    var svr_url = "http://192.168.2.23:9001/******.asmx/";

    function getdata(action,para,callback)
    {
        var uu = svr_url + action;
        $.ajax({
            type: "post",
            contentType:"application/json",
            data:para,
            url:svr_url + action,
            dataType:'json',
            success:function(result){  
                console.log(result);
                var res=JSON.parse(result.d);
                if(res.Status==1){
                    if(callback)callback(res.data);
                }
                else
                {
                    alert(res.Message);
                }
            },
            error:function(err){
                console.log(err);
            }
        });  
    }

     

    三。HTML页面

      getdata('getProduct',[],afterGet); 

      var afterGet=function(data)

      {

        ......

      }

     

     

    以上实测通过,系统运行中。

     

    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-11-15 07:46 , Processed in 0.052723 second(s), 28 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表