zoukankan      html  css  js  c++  java
  • jquery ajax GET POST 跨域请求实现

     同一段逻辑代码需要在多个网站中使用, 每个网站都新建一个ashx真是扯蛋的作法,  所以想只请求一处的ashx, 这样便于维护和修改, 那么,ajax跨域问题就来了。 

    废话少说, 直接上代码,  我现在做的是GET请求的。 POST请求同理。 

    首先整改ashx,加入支持跨域请求的代码。

            context.Response.ContentType = "text/plain"; 
            string active = context.Request.QueryString["active"];
            
            string rs = "0";
            if (active == "3")
            {
                string oid = TGM.BaseOpera.String.replacesql(context.Request.QueryString["oid"]);
                if (!string.IsNullOrEmpty(oid))
                {
                    tansar.BLL.order tbo = new tansar.BLL.order();
                    string flag = tbo.GetSID(oid);
                    if (flag != "1000")
                        rs = "ok";
                }
            }
            #region 支持跨域请求
            context.Response.ClearHeaders();
            string origin = context.Request.Headers["Origin"];
            context.Response.AppendHeader("Access-Control-Allow-Origin",string.IsNullOrEmpty(origin) ? "*" : origin);
            string requestHeaders = context.Request.Headers["Access-Control-Request-Headers"];
            context.Response.AppendHeader("Access-Control-Allow-Headers",string.IsNullOrEmpty(requestHeaders) ? "*" : requestHeaders);
            context.Response.AppendHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS");
            #endregion 
            
            context.Response.Write(rs);

    然后ajax中的js方法:

    function getFlag(d) {
                    $.ajax({
                        type: "get",
                        async: false,
                        url: "http://www.8kmm.com",
                data: d,
    dataType: "text",
                success:
    function (data) {
                  if (data == "ok") {
                   location.href
    = "/user/orderdetail.aspx?oid=<%=Onumber %>"; }
                  },
                error:
    function (XMLHttpRequest, textStatus, errorThrown) {
                   alert("请求数据异常:" + errorThrown);
                  }
          });

    }

    做前端开发, 浏览器的开发者工具能帮大忙, 比如webkit内核的, ff的。 

  • 相关阅读:
    golang中channels的本质详解,经典!
    Vim tips——Working with external commands
    go语言中log包的使用
    vue自定义轮播图组件 swiper
    Nerv --- React IE8 兼容方案
    微信小程序实战之 pay(支付页面)
    微信小程序实战之 goods(订餐页)
    微信小程序 自定义组件(stepper)
    微信小程序 自定义组件(modal) 引入组件
    微信小程序之 Swiper(轮播图)
  • 原文地址:https://www.cnblogs.com/jackrebel/p/4612979.html
Copyright © 2011-2022 走看看