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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM