通过在CodeIgniter 4的路由定义中添加适当的过滤器,将Angular的预检请求选项重新定向到正确的代码路径。
以下是基于CodeIgniter 4的PHP示例代码,通过设置过滤器来解决上述问题的示例:
$route['OPTIONS'] = function() { // Set CORS headers header('Access-Control-Allow-Origin: *'); header('Access-Control-Allow-Headers: Content-Type'); header('Access-Control-Allow-Methods: POST, GET, OPTIONS'); // Empty response with 200 status code to prevent pre-flight request errors echo json_encode(array()); exit(); };
通过在路由中设置上面的过滤器,这将确保在Angular预检选项请求执行时,CodeIgniter 4不会将其解释为路由。在此示例中,我们设置了一个名为“OPTIONS”的路由,该路由捕获Angular的预检选项请求。然后,我们设置了适当的CORS标头和允许的方法,以确保该请求能够成功处理,同时不会影响我们的代码。最后,我们将请求响应为空,并显示200响应代码,以确保预检选项请求成功完成。