我的 rails 应用程序中有一个 react 组件,我试图在其中fetch()将POST发送到托管在本地主机上的 rails 应用程序,这给了我错误:
ActionController::InvalidAuthenticityToken (ActionController::InvalidAuthenticityToken):
Run Code Online (Sandbox Code Playgroud)
我正在使用设计 gem 来处理user/registrations和logins。
我试图删除 protect_from_forgery with: :exception
这是我的提取代码,
this.state.ids.sub_id});
fetch(POST_PATH, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: body
}).then(res => res.json()).then(console.log);
Run Code Online (Sandbox Code Playgroud)
如何获取 csrf 令牌并通过表单发送它以使其通过?
理想情况下,我只想通过标头发送它,但我不知道如何访问令牌。
我有一个 SpringBoot 应用程序,有四层;域、控制器、服务和存储库。
我正在使用控制器为客户端创建端点,但在应用程序中,我想使用 REST 对我不想直接向客户端公开的外部 API 进行一些外部 API 调用。
您将在结构中的哪个位置实现此类外部调用?我正在与一位朋友讨论,创建某种适配器包并在服务层中调用它可能是个好主意,但我不太确定。
我遇到一个问题,我的代码感觉很混乱,我需要一些帮助来更好地构建它。
例子:
if (object.getDescription() == Status.Expected && !logEvent.equals("Expected")) {
System.out.println("Do nothing"); // ???
} else {
status.setChangedBy(logEvent);
}
Run Code Online (Sandbox Code Playgroud)
如果以更干净的方式我该如何格式化它?我希望changedBy在每种情况下都调用该方法,除了 whengetDescription == Status.Expected和logEventis not "Expected"。但我也不想要一个空的 if 语句。
另一种选择是:
if (object.getDescription() == Status.Expected) {
if (logEvent.equals("Expected")) {
status.setChangedBy(logEvent);
}
} else {
status.setChangedBy(logEvent);
}
Run Code Online (Sandbox Code Playgroud)
这两个例子都有效。但这两个例子都“感觉不对”。还有其他我没有看到的解决方案吗?