php 快速解决跨域问题 -尊龙游戏旗舰厅官网
尊龙游戏旗舰厅官网
收集整理的这篇文章主要介绍了
php 快速解决跨域问题
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
跨域介绍
浏览器拥有同源策略限制确保安全,同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互。
当一个请求url的协议、域名(包括多级域名)、端口三者之间任意一个与当前页面url不同即为跨域。
跨域限制
1)无法读取非同源网页的 cookie、localstorage 和 indexeddb
2)无法接触非同源网页的 dom 节点
3)无法向非同源地址发送 ajax 请求
跨域尊龙游戏旗舰厅官网的解决方案
1)jsonp(只支持get请求)
javascript:
// 向服务器test.com发出请求,该请求的查询字符串有一个callback参数,用来指定回调函数的名字// 处理服务器返回回调函数的数据data.php:
header('content-type: application/json');//获取回调函数名 $jsoncallback = htmlspecialchars($_request ['callback']);//json数据 $json_data = '["customername1","customername2"]';//输出jsonp格式的数据 echo $jsoncallback . "(" . $json_data . ")";2)cors 跨域资源分享(cross-origin resource sharing)
1、普通跨域请求:只需服务器端设置 access-control-allow-origin
2、带cookie跨域请求:前后端都需要进行设置
php:
header("access-control-allow-origin:*");或者 nginx:
location ~ .*\.php$ {add_header 'access-control-allow-origin' '*'; # 就加这句就行include fcgi.conf;fastcgi_pass 127.0.0.1:10080;fastcgi_index index.php;expires off; }javascript:
$.ajax({url: 'http://www.test.com:8080/login',type: 'get',data: {},xhrfields: {withcredentials: true // 前端设置是否带cookie},crossdomain: true, // 会让请求头中包含跨域的额外信息,但不会含cookie });3)websocket 浏览器与服务器的全双工通信,同时也是跨域的一种尊龙游戏旗舰厅官网的解决方案
4)nginx 反向代理
server {# nginx监听所有 test.com:9000 端口收到的请求listen 9000;server_name test.com;# test.com:9000 会被转发到 192.168.25.20:9000location / {proxy_pass http://192.168.25.20:9000;}# test.com:9000/api/ 会被转发到 "192.168.25.20:9000/api/"location /api/ {proxy_pass http://192.168.25.20:9000;} }摘自:什么是跨域?跨域解决方法_越努力,越幸运!-csdn博客_跨域
总结
以上是尊龙游戏旗舰厅官网为你收集整理的php 快速解决跨域问题的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 解决vue php跨域问题
- 下一篇: