首页 > 代码库 > 跨域相关
跨域相关
如果使用XMLHttpRequest 不能发送跨域请求,但是可以使用
script 标签去发送请求
如果添加了一个dataType 等于 jsonp,jQuqey 的ajax 方法
底层就不使用XMLHttpRequest, 而是去创建一个script标签,
然后通过script 标签去发送请求
如果使用script 标签发送请求,那么如何接收服务器发送返回的数据?
如果使用script 标签发送请求,服务器返回了数据,返回的数据
客户端浏览器直接以javascript 的方式去解析服务器返回的数据
script 浏览器调用js 的解析引擎去解析数据
客户端给服务端传递一个回调函数,它还需要定义一个函数
服务端返回的是一个回调函数的调用,并且将服务端的数据包在这个函数的调用里面
jsonp 只能使用get
因为底层使用script 标签发送请求
scr href 这些发送的请求都是get 请求
jquery 只支持jsonp
post 也是可以跨域的,但就不是jsonp 了
post 是 cors 跨域资源共享
服务端:
<?php $callback = isset($_REQUEST[‘callback‘]) ?$_REQUEST[‘callback‘] : ‘‘; $data = array(‘name‘=>‘lisi‘,‘age‘=>22); $json = json_encode($data); echo $callback . "($json)";
客户端:
<!DOCTYPE html> <html> <head> <title></title> </head> <body> <input type="button" value="click"> <script type="text/javascript"> function getInfo(args){ console.log(args) } document.querySelector(‘input‘).onclick = function(){ var script = document.createElement(‘script‘); script.src = ‘index.php?callback=getInfo‘; document.body.appendChild(script); } </script> </body> </html>
跨域相关
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。