这个错误提示表明浏览器已经阻止了跨域请求,因为服务器未正确处理预检请求。预检请求是浏览器在发送跨域请求之前,先向服务器发送一个 OPTIONS 请求,以确定服务器是否接受跨域请求,并确定可以使用哪些 HTTP 方法和请求头。
为了解决这个问题,您需要在服务器端添加处理预检请求的代码。具体来说,您需要在服务器端添加一个名为 OPTIONS 的路由,并在该路由中添加与实际路由相同的 CORS 头信息。例如,如果您的实际路由为 api.xxx.com,则您需要添加以下代码:
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: POST");
header("Access-Control-Allow-Headers: Content-Type");
exit();
}
这段代码会检查请求方法是否为 OPTIONS,并添加与实际路由相同的 CORS 头信息。这样,当浏览器发送预检请求时,服务器就会正确地处理请求,并返回允许跨域请求的 CORS 头信息。
另外,您还需要确保在服务器端正确处理请求,并在响应中添加正确的 CORS 头信息。您可以使用以下代码添加 CORS 头信息:
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: POST");
header("Access-Control-Allow-Headers: Content-Type");
这段代码会在响应中添加与预检请求相同的 CORS 头信息,以允许跨域请求。