admin 管理员组

文章数量: 887021

【jquery

jquery-跨域

    • 什么是跨域?
    • 处理跨域的方式
      • 1.XHR2
      • 2.jsonP

什么是跨域?

跨域,指的是浏览器不能执行其他网站脚本

例子:比如在网站中使用ajax请求其他网站的天气、快递或者其他数据接口。

处理跨域的方式

1.XHR2

HTML5中提供的XMLHTTPREQUEST Level2(及XHR2)已经实现了跨域访问。但ie10以下不支持

只需要在服务端填上响应头:

	let http = require('http')
http.createServer((req,res)=>{/*星号表示所有的域都可以接受,*/res.setHeader('Access-Control-Allow-Origin','*') res.end('success')
}).listen(3000,function(){console.log('serve start...')
})

2.jsonP

ajax本身是不可以跨域的,
通过产生一个script标签来实现跨域。因为script标签的src属性是没有跨域的限制的。
其实设置了dataType: 'jsonp’后,$.ajax方法就和ajax XmlHttpRequest没什么关系了,取而代之的则是JSONP协议。JSONP是一个非官方的协议,它允许在服务器端集成Script tags返回至客户端,通过javascript callback的形式实现跨域访问。

ajax的跨域写法:

 <script>$.ajax({url:"http://localhost/php-serve.php",type:"get",/* 必须get *///定义发送jsonp请求dataType:'jsonp',//更改定义的参数名jsonp:'kyFn',//修改callback名称,但是php中也要修改成相对应的函数名//指定jsonp发送的回调函数名(可以任意起名字,无需对应)jsonpCallback:'hyly',success:function(info){console.log(info);}});</script>

注意:jquey是不支持post方式跨域的。

本文标签: jQuery