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
版权声明:本文标题:【jquery 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1687995864h166597.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论