ajax 请求有关跨域问题
发布时间:2020-12-15 21:04:09 所属栏目:百科 来源:网络整理
导读:分享一下最近用jQuery跨域请求的经历, 希望能给大家一些关于这个方案的概念和资料。 该部分包括客户端和服务器端,(如果服务器不在自己手上,那么还是考虑通过自己的服务器转发请求吧) 1.原本的代码很简单。。如果是同域名什么问题都没有 (有兴趣的朋友
分享一下最近用jQuery跨域请求的经历, 希望能给大家一些关于这个方案的概念和资料。 该部分包括客户端和服务器端,(如果服务器不在自己手上,那么还是考虑通过自己的服务器转发请求吧)
1.原本的代码很简单。。如果是同域名什么问题都没有 (有兴趣的朋友可以尝试在自己的服务器上运行以下代码) $.ajax({ url: "http://www.google.com/",//不同域名,而且google 没有允许第三方提交所以会出错 cache: false,0)">//data: params, dataType: 'json',success: function (data) { console.log(data); },error: function (e) { alert(e.statusText); } }) 嗯,我的默认浏览器是Chrome, 上去一跑。。。当然不能用。。。什么都还没做呢,就想做跨域访问这么危险的事情 下面是Chrome给出的错误提示 2.在服务器端做点手脚, HttpContext.Current.Response.AddHeader(Access-Control-Allow-Origin*"); 可以设置为详细的地址 在Fiddler中发现客户端提交的是OPTIONS的请求。。。。恩。。。。。那就加一段逻辑处理OPTIONS HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin","*"); // 可以设置为详细的地址 if (HttpContext.Current.Request.HttpMethod == "OPTIONS") // 加点逻辑 { HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods","POST,GET,OPTIONS"); HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers","Content-Type,Authorization,Accept,X-Requested-With"); HttpContext.Current.Response.End(); } |