当我尝试更新数据库对象时,我的Web应用程序出现此错误:
CORS策略已阻止从来源“ http://localhost:3001”访问“ http://localhost:8080”处的XMLHttpRequest:请求的资源上没有“ Access-Control-Allow-Origin”标头。
这些是网络请求:Preflight request; PUT request;
我将Slim用于服务器路由,将Vue用于客户端路由,将axios用于数据库连接。
响应中似乎缺少allow origin标头,但我已设置了发送它的服务器:
$app->add(function ($req, $res, $next) {
$response = $next($req, $res);
return $response
->withHeader('Access-Control-Allow-Origin', '*')
->withHeader('Access-Control-Allow-Headers', 'X-Requested-With, Content-Type, Accept, Allow, Origin, Authorization, Access-Control-Allow-Origin')
->withHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, PATCH, OPTIONS');
});
可以处理具有不同状态(表值)的对象。我怀疑它没有针对这种特定状态的对象使用该响应,但是它使用了相同的形式和方法。我不明白为什么它会使用不同的响应。
更新
我尝试更新的表(文档)用作数据库中另一个表(修订)的外键。我发现,如果我将修订从文档中取消链接,则更新有效。也许CORS错误是假阳性?
答案 0 :(得分:0)
那毕竟是假阳性。 我试图发送到数据库的实体内部的数组似乎是问题所在。从请求中删除该更新后,更新效果很好。