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

时间: 2024-10-22 15:54:46

jquery ajax GET POST 跨域请求实现的相关文章

JQuery - Ajax和Tomcat跨域请求问题解决方法!

在JQuery里面使用Ajax和Tomcat服务器之间进行数据交互,遇到了跨域请求问题,无法成功得到想要的数据! 错误信息部分截图: 通过错误信息判断知道已经发生在Ajax跨域请求问题了! 当前Tomcat服务器,是一个已经存在的工程,有APP同这部分代码一同工作.我所做的是开发另外一款手机应用程序,并且使用已有的接口!在这种情况下,实现Ajax跨域请求,而且对目前源代码影响越小越好!怎样达到这样的目标?最终通过为Tomcat添加过滤器方式完成! 由于此项目是商业项目,服务器并不是我管理,所以无

PHP AJAX JSONP实现跨域请求使用实例

在之前我写过“php返回json数据简单实例”,“php返回json数据中文显示的问题”和“在PHP语言中使用JSON和将json还原成数组”.有兴趣的童鞋可以看看 今天我写的是PHP AJAX JSONP使用的实例.不清楚jsonp是什么的请自己搜索 实例1 test.html <!doctype html> <html> <head> <meta charset="utf-8"> <title>test</title

js中ajax如何解决跨域请求

js中ajax如何解决跨域请求,在讲这个问题之前先解释几个名词 1.跨域请求 所有的浏览器都是同源策略,这个策略能保证页面脚本资源和cookie安全 ,浏览器隔离了来自不同源的请求,防上跨域不安全的操作. 跨域指的协议.域名.端口 有一个不同的情况下都是跨域 例:在本站点请求外站的数据是不允许的 //在本站点请求外站点的资源是不允许的 $(function () { $.ajax({ url: "http://127.0.0.1:14847/Web/jsonp.js", success

原生js封装ajax,实现跨域请求

描述: 需要ajax跨域请求,用cors跨域方案.服务端设置: header('Access-Control-Allow-Origin: http://front.ls-la.me'); header('Access-Control-Allow-Headers: X-Requested-With'); 设置了: 后端需要的头信息,原生ajax以表单方式post提交数据,json数据data转换成key1=val1&key2=val2 的字符串格式 1 var ajaxHdFn = functio

ajax jsonp的跨域请求

1.页面ajax的请求 $.ajax({ async: false, url: 'http://localhost:8080/downloadVideos',//跨域的dns/document!searchJSONResult.action, type: "GET", dataType: 'jsonp', jsonp: 'jsoncallback', jsonpCallback: "cb",//自定义返回函数的名称,要与服务端保持一致 data: { id:ID,

ajax之jsonp跨域请求

前端ajax请求代码 后台php处理代码

浅谈jquery中的ajax请求和跨域请求

ajax请求数据的代码: $(function () { $.ajax({ url:url,//请求文件所在的url type:"get",//请求的方式 success:function (data) { console.log(data);//返回的数据 } })})这样请求来的数据一般情况下都可以使用,但是有时候在从这个域名到另外一个域名请求数据时往往会出现所谓的跨域请求问题, 浏览器均默认开启了同源策略,它指Ajax请求所在的页面和被请求的页面在协议.域名.端口均相同才能被访问

原生JS实现Ajax及Ajax的跨域请求

  前  言          如今,从事前端方面的程序猿们,如果,不懂一些前后台的数据交互方面的知识的话,估计都不太好意思说自己是程序猿.当然,如今有着许多的框架,都有相对应的前后台数据交互的方法. 而,其中,用得最多的应该苏算是JQuery的Ajax了.但是,今天,影子向大家介绍的是原生js的Ajax,及跨域请求. 一. JQuery的Ajax 首先,先回忆下JQuery的Ajax写法: $.ajax({ url: , type: '', dataType: '', data: { }, s

jQuery jsonp跨域请求详解

跨域的安全限制都是对浏览器端来说的,服务器端是不存在跨域安全限制的. 浏览器的同源策略限制从一个源加载的文档或脚本与来自另一个源的资源进行交互. 如果协议,端口和主机对于两个页面是相同的,则两个页面具有相同的源,否则就是不同源的. 如果要在js里发起跨域请求,则要进行一些特殊处理了.或者,你可以把请求发到自己的服务端,再通过后台代码发起请求,再将数据返回前端. 这里讲下使用jquery的jsonp如何发起跨域请求及其原理. 先看下准备环境:两个端口不一样,构成跨域请求的条件. 获取数据:获取数据