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的。 

  • 相关阅读:
    Java 设计模式-享元模式(Flyweight)
    Java 设计模式-状态模式模式(State)
    Java 设计模式-建造者模式(Builder)
    Java 设计模式-抽象工厂(Abstract Factory)
    Spring 之 JMS 基于JMS的RPC
    Spring 之 JMS 监听JMS消息
    Spring 之 JMS 发送和接收消息
    数据结构
    BFS vs DFS
    子集和排列
  • 原文地址:https://www.cnblogs.com/jackrebel/p/4612979.html
Copyright © 2011-2022 走看看