【发布时间】:2019-05-25 02:40:58
【问题描述】:
我有一个使用 codeigniter MVC 构建的网站,但遵循现代趋势,我正在尝试创建一个基于 react 的前端。我仍然想使用原始的 codeigniter 框架和控制器,但是我希望它返回纯 JSON,而不是渲染视图。目前,我无法将请求从在 localhost:3000 上以调试模式运行的 react 应用程序发送到在 apache http://mywebsite:80 上运行的 codeigniter api
这就是我发起请求的方式:
fetch("http://mywebsite/Api" + route + '/', {
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
method: "POST",
redirect: 'follow',
body: JSON.stringify(data),
dataType : 'json'
})
这是我在控制台中遇到的错误:
无法加载http://mywebsite/ApiAuth/login/:预检响应 无效(重定向)
我的 php 页面发回以下内容:
header('Content-Type: application/json;charset=UTF-8');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: DELETE, HEAD, GET, OPTIONS, POST, PUT');
header('Access-Control-Allow-Headers: Content-Type, Content-Range, Content-Disposition, Content-Description');
header('Access-Control-Max-Age: 1728000');
控制台输出:
Request URL: http://mywebsite/ApiAuth/login/
Request Method: OPTIONS
Status Code: 302 Found
Remote Address: [::1]:80
Referrer Policy: no-referrer-when-downgrade
【问题讨论】:
-
我希望您通过令牌或其他方式进行身份验证。您应该禁用对
OPTIONS请求的身份验证检查并仅返回标头。 -
这是后端服务器的问题。您需要配置您的 nginx/apache 重定向选项 -> 返回 200。
标签: php reactjs codeigniter