【发布时间】:2025-12-01 13:40:02
【问题描述】:
我是 codeIgniter 的新手,我已经使用 code-igniter 构建了一个 REST Web 服务。
使用 React JS 的 UI。
在邮递员网络服务中似乎工作正常。但是当我集成到 React JS 中时,它会抛出一个错误。
无法加载http://123.0.0.5:81/codeigniter-rest-api/index.php/auth/login:预检响应中的 Access-Control-Allow-Headers 不允许请求标头字段 Access-Control-Allow-Origin。 EmployeeLogin.js:2 未捕获(承诺)类型错误: 获取失败
我的网络服务是: 123.0.0.5:81/codeigniter-rest-api/index.php/auth/login
我的 React 服务器是: localhost/3000
我已经搜索了解决方案,并在我的控制器中进行了尝试,但无法正常工作。
class Auth extends CI_Controller {
function __construct() {
parent::__construct();
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: X-API-KEY, Origin, X-Requested-With, Content-Type, Accept, Access-Control-Request-Method, Authorization");
header("Access-Control-Allow-Methods: GET, POST, OPTIONS, PUT, DELETE");
}
我的反应消费脚本是:
(async () => {
const rawResponse = await fetch('http://123.0.0.5:81/codeigniter-rest-api/index.php/auth/login', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify(datapost)
});
const content = await rawResponse.json();
alert(content);
})();
【问题讨论】:
-
为什么请求有
Access-Control-Allow-Origin..?我认为它应该是服务器端.. developer.mozilla.org/en-US/docs/Web/HTTP/CORS -
是的,我浏览了文档。现在工作正常。谢谢。
标签: reactjs codeigniter web-services access-control