我在使用 axios 进行跨域 POST 请求时,需要设置 Content-Type:application/x-www-form-urlencoded 才能正确发送数据( 不能使用默认的 application/application/json )。而使用 GET,或不跨域使用 POST 时都没有这个问题。
那么是不是在跨域情况下发送 POST 请求时,必须设置 Content-Type:application/x-www-form-urlencoded 呢?如果不是必须的话,在后端代码或服务器配置中要怎么做才能成功发送呢?
后台使用的是 PHP 框架 Laravel,已经加上了跨域相关的头:
$origin = $_SERVER['HTTP_ORIGIN'];
$response->header('Access-Control-Allow-Origin', $origin);
$response->header('Access-Control-Allow-Headers', 'Content-Type, content-type, X-Requested-With');
$response->header('Access-Control-Allow-Credentials', 'true');
$response->header('Access-Control-Allow-Methods', 'POST, PUT, DELETE, OPTIONS');
引用自:http://www.bcty365.com/conten...
也就是说,我们需要在 laravel 中单独为 options 类请求加上处理:
注意,这里的路由路径需要和实际的 API 请求相同或覆盖之。CORS 中间件的内容为: