php允许跨域访问,服务器端php设置允许跨域的方法

6bccbe2b6c70534f9ab5d14f6dd7a00f.png

服务器端php设置允许跨域

解决跨域的关键是设置 Access-Control-Allow-Origin。

例如:客户端的域名是 api.itbsl.com,而请求的域名是www.itbsl.com

如果直接使用ajax访问,会有以下错误:

XMLHttpRequest cannot load http://www.itbsl.com/server.php. No 'Access-Control-Allow-Origin' header is present on the requested resource.Origin 'http://api.itbsl.com' is therefore not allowed access.

1.允许单个域名访问

指定某域名http://api.itbsl.com跨域访问,则只需在http://www.itbsl.com/server.php文件头部添加如下代码:header('Access-Control-Allow-Origin:http://api.itbsl.com');

2.允许多个域名访问

指定多个域名 http://api.itbsl.com、http://doc.itbsl.com等 跨域访问,则只需在http://www.itbsl.com/server.php文件头部添加如下代码:$origin = isset($_SERVER['HTTP_ORIGIN'])? $_SERVER['HTTP_ORIGIN'] : '';

$allow_origin = array( 'http://api.itbsl.com', 'http://doc.itbsl.com' );

if(in_array($origin, $allow_origin)){

header('Access-Control-Allow-Origin:'.$origin);

}

3.允许所有域名访问

允许所有域名访问则只需在http://www.itbsl.com/server.php文件头部添加如下代码:header('Access-Control-Allow-Origin:*');

推荐教程:《PHP教程》

要在接口的响应头中设置允许跨域访问的选项,你可以在服务器端的代码中添加适当的响应头。具体的操作方式取决于你使用的服务器端语言或框架。以下是一些常见的设置跨域访问选项的方法: 1. 在 Express.js 中设置跨域访问: ```javascript const express = require('express'); const app = express(); app.use(function(req, res, next) { res.header('Access-Control-Allow-Origin', '*'); // 允许所有来源访问,也可以指定特定的来源 res.header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE'); // 允许的请求方法 res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization'); // 允许的请求头 next(); }); // 其他路由和处理逻辑... ``` 在上述代码中,`res.header()` 方法用于设置响应头,其中: - `'Access-Control-Allow-Origin'` 设置为 `*` 表示允许任何来源进行跨域访问。你也可以指定具体的来源,如 `'http://example.com'`。 - `'Access-Control-Allow-Methods'` 设置允许的请求方法,如 GET、POST、PUT、DELETE 等。 - `'Access-Control-Allow-Headers'` 设置允许的请求头,如 Content-Type、Authorization 等。 2. 在其他服务器端语言或框架中设置跨域访问: 使用其他服务器端语言或框架时,可以查阅对应的文档或参考以下示例代码,以设置跨域访问选项: - PHP: ```php header('Access-Control-Allow-Origin: *'); header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE'); header('Access-Control-Allow-Headers: Content-Type, Authorization'); ``` - Django (Python): ```python from django.views.decorators.csrf import csrf_exempt from django.http import HttpResponse @csrf_exempt def your_view(request): response = HttpResponse() response["Access-Control-Allow-Origin"] = "*" response["Access-Control-Allow-Methods"] = "GET, POST, PUT, DELETE" response["Access-Control-Allow-Headers"] = "Content-Type, Authorization" return response ``` 请注意,以上示例代码仅供参考,实际操作可能因使用的服务器端语言或框架而有所不同。建议查阅相关文档或参考官方文档来了解如何在特定的服务器端环境中设置跨域访问选项。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值