关于跨域的处理的几种方法的整理

跨域是经常遇到的这里不再说跨域什么意思了,协议不同,端口不同,域名不同是为跨域;

解决方法:

1,后台设置代理,比如把上海有个服务器,我北京相用,可以北京后台代理,

2,前端采取jsop来获取数据

代码示例:此处后台是node.js简单实现,页面端口localhost:3020

前端:$(function(){    $("#btn").click(function(){        $.ajax({            method:"get",            url:"http://127.0.0.1:3022/app/jsonp",//这里服务端端口是3022,跨域            dataType:"jsonp",//数据类型是jsonp            jsonp:"callback",//参数为callback            success:function(data){                console.log(data.name)            }

        })    })})后端node.js
var express=require("express");var app=express();app.use(express.static("./"));app.get(‘/app/jsonp‘,function(req,res,next){    res.jsonp({name:‘lyz‘});//注意此处格式必须是jsonp,各个语言可能写法不同});

app.listen(3022,function(req,res){

 console.log(2) })原理分析:人们加载任意地址的js文件都有效果,于是人类利用聪明的大脑想到把数据放到js里面,然后让前端调取,jsonp只对get有效,post无效的;

3 xhr2这是html5新产生的ajax2,衍生出来的,于是在一些浏览器上是无效的;这方法就是直接在服务端设置,本方法可以post,get都行header(‘Access-control-Allow-Origin:*‘)
前台代码
$.ajax({    method:"get",    url:"http://127.0.0.1:3022/app/jsonp",    success:function(data){        console.log(data)    }

})
后台代码

var express=require("express");
var app=express();
app.use(express.static("./"));
app.get(‘/app/jsonp‘,function(req,res,next){
res.setHeader(‘Access-control-Allow-Origin‘,‘*‘);注意这里*号是所有域名都可以访问,即通配原则,如果要某特定域名访问,可单独设置
res.send("2")
});

app.listen(3022,function(req,res){

console.log(2)
})

时间: 2024-10-14 10:50:55

关于跨域的处理的几种方法的整理的相关文章

跨域请求资源的几种方式

跨域请求资源的几种方式 由于浏览器同源策略,凡是发送请求URL的协议.域名.端口三者之间任意一与当前页面地址不同即为跨域. (1)JSONP(jsonp跨域get请求) 这种方式主要是通过动态创建一个script标签,浏览器对script的资源引用没有同源限制,同时资源加载到页面后会立即执行:(创建script标签向不同域提交http请求的不会被拒绝的方法,jsonp标签的src属性是没有跨域限制的) 实际项目中JSONP通常用来获取json格式数据,这时前后端通常约定一个参数callback,

探讨跨域请求资源的几种方式

什么是跨域 JSONP proxy代理 cors xdr 由于浏览器同源策略,凡是发送请求url的协议.域名.端口三者之间任意一与当前页面地址不同即为跨域.具体可以查看下表(来源) JSONP 这种方式主要是通过动态插入一个script标签.浏览器对script的资源引用没有同源限制,同时资源加载到页面后会立即执行(没有阻塞的情况下). 1 <script> 2 var _script = document.createElement('script'); 3 _script.type = &

AJAX跨域请求json数据的实现方法

这篇文章介绍了AJAX跨域请求json数据的实现方法,有需要的朋友可以参考一下 我们都知道,AJAX的一大限制是不允许跨域请求. 不过通过使用JSONP来实现.JSONP是一种通过脚本标记注入的方式,它是可以引用跨域URL的js脚本,不过需要提供一个回调函数(必须在您自己的页面上),因此,你可以自己处理结果. 让我们看看JSONP的是怎么在jQuery,MooTools的,Dojo Toolkit中实现的. jQuery的JSONPjQuery.getJSON方法:Js代码 jQuery.get

ArcGIS API for Silverlight 调用WebService出现跨域访问报错的解决方法

原文:ArcGIS API for Silverlight 调用WebService出现跨域访问报错的解决方法 群里好几个朋友都提到过这样的问题,说他们在Silverlight中调用了WebService方法,总报这个错误,贴图如下: 解决办法: 1.确定你的Silverlight项目及承载Silverlight的Web程序根目录下都包含2个跨域文件,分别是crossdomain.xml和clientaccesspolicy.xml: crossdomain.xml文件,如下: <?xml ve

代替jquery $.post 跨域提交数据的N种形式

跨域的N种形式: 1.直接用jquery中$.getJSON进行跨域提交 优点:有返回值,可直接跨域: 缺点:数据量小: 提交方式:仅get (无$.postJSON) $.getJSON("http://www.sendnet.cn/?callback=?" , { UserId: 1001 }, function (data) { alert(data.info); }); $.ajax({ type: "Get", url: "http://www.

JSONP跨域的原理解析( 一种脚本注入行为)

JavaScript是一种在Web开发中经常使用的前端动态脚本技术.在JavaScript中,有一个很重要的安全性限制, 被称为“some-Origin Policy”(同源策略).这一策略对于JavaScript代码能够访问的页面内容作了很重要的限制, 即JavaScript只能访问与包含它的文档在同一域下的内容. JavaScript这个安全策略在进行多Iframe或多窗口编程.以及Ajax编程时显得尤为重要.根据这个策略,在baidu.com 下的页面中包含的JavaScript的代码,不

js 跨域问题常见的五种解决方式

一.什么是跨域? 要理解跨域问题,就先理解好概念.跨域问题是由于javascript语言安全限制中的同源策略造成的. 简单来说,同源策略是指一段脚本只能读取来自同一来源的窗口和文档的属性,这里的同一来源指的是主机名.协议和端口号的组合. URL 说明 是否允许通信 http://www.a.com/a.js http://www.a.com/b.js 同一域名下 允许 http://www.a.com/lab/a.js http://www.a.com/script/b.js 同一域名下不同文件

js跨域请求数据的3种常用的方法

由于js同源策略的影响,当在某一域名下请求其他域名,或者同一域名,不同端口下的url时,就会变成不被允许的跨域请求.那这个时候通常怎么解决呢,对此菜鸟光头我稍作了整理:1.JavaScript   在原生js(没有jQuery和ajax支持)的情况下,通常客户端代码是这样的(我假设是在localhost:8080的端口下的http://localhost:8080/webs/i.mediapower.mobi/wutao/index.html页面的body标签下面加入以下代码): <script

谈谈跨域请求数据的几种常用的方法

由于js同源策略的影响,当在某一域名下请求其他域名,或者同一域名,不同端口下的url时,就会变成不被允许的跨域请求. 那这个时候通常怎么解决呢,对此菜鸟光头我稍作了整理: 1.JavaScript 在原生js(没有jQuery和ajax支持)的情况下,通常客户端代码是这样的(我假设是在localhost:8080的端口下的http://localhost:8080/webs/i.mediapower.mobi/wutao/index.html页面的body标签下面加入以下代码): <script