欢迎访问 生活随笔!

尊龙游戏旗舰厅官网

当前位置: 尊龙游戏旗舰厅官网 > 编程语言 > php >内容正文

php

php 快速解决跨域问题 -尊龙游戏旗舰厅官网

发布时间:2023/12/31 php 19 豆豆
尊龙游戏旗舰厅官网 收集整理的这篇文章主要介绍了 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 快速解决跨域问题的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得尊龙游戏旗舰厅官网网站内容还不错,欢迎将尊龙游戏旗舰厅官网推荐给好友。

网站地图