Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 删除前如何处理选项方法?_Javascript_Node.js_Reactjs_Rest_Nestjs - Fatal编程技术网

Javascript 删除前如何处理选项方法?

Javascript 删除前如何处理选项方法?,javascript,node.js,reactjs,rest,nestjs,Javascript,Node.js,Reactjs,Rest,Nestjs,我正在尝试解决管理照片的任务 我有一个函数,可以根据id删除一些具体的图像。但是我的代码发送两个请求。第一个选项(结果我收到204),第二个删除(我收到404) 结果,在第一次请求时,执行操作,在第二次请求时,我得到一个错误,因为请求已经完成,并且图像已经被第一次请求删除 我发现这是因为CORS,这是正常的行为,但我没有找到有关如何处理此选项请求的信息 这是我的路线: @UseGuards(AuthGuard('jwt')) @Delete('/delete/:id') async delete

我正在尝试解决管理照片的任务

我有一个函数,可以根据id删除一些具体的图像。但是我的代码发送两个请求。第一个选项(结果我收到204),第二个删除(我收到404)

结果,在第一次请求时,执行操作,在第二次请求时,我得到一个错误,因为请求已经完成,并且图像已经被第一次请求删除

我发现这是因为CORS,这是正常的行为,但我没有找到有关如何处理此选项请求的信息

这是我的路线:

@UseGuards(AuthGuard('jwt'))
@Delete('/delete/:id')
async deleteImage(@Param('id') imageId: number, @Req() auth) {
    return this.imageService.deleteImage(imageId);
}
这是我的CORS配置

const app = await NestFactory.create(AppModule);
app.enableCors({
    origin: ['http://localhost:8080', 'http://localhost:8888'],
    methods: ['GET', 'POST', 'PATCH', 'DELETE', 'PUT'],
    preflightContinue: false,
});
app.useGlobalPipes(new ValidationPipe({ transform: true }));
await app.listen(3000);
下面是回复的截图

请给我一个链接,其中包含有关如何正确处理选项请求的信息。谢谢


我正在使用NestJS/ExpressJS。CORS已启用。

CORS在执行跨原点“复杂”请求时发送飞行前请求。第一个请求(选项)不应删除任何内容-您需要配置服务器,使其在响应删除请求时仅删除资源,而不是选项。我将Typescript与NestJS一起使用;您只需将该方法添加为decorator:
@Delete()
。如果没有帮助,请在问题中添加控制器代码。-选项的语义是安全的,因此如果当前的删除行为导致属性丢失,则是实现的错误,而不是客户端的错误。您应该添加此装饰程序:@delete()