我正在構建一個使用Spring 5路由器函數映射請求的Web應用程序休息控制器。如何在路由器功能中允許CORS?
@RestController
public class AdminRest {
public RouterFunction<ServerResponse> route() {
return RouterFunctions
.route(RequestPredicates.GET("/admin/organizations"), this::getOrganizations);
}
}
讓Angular 4項目充當其餘控制器的使用者。
public getOrganizations(): Observable<OrganizationsList> {
return this.http.get(this.getOrganizationsUrl)
.map((res: Response) => res.json())
.catch((error: any) => Observable.throw(error.json().error || 'Server error'));
}
它會返回該錯誤
的XMLHttpRequest無法加載http://ip:port/admin/organizations。請求的資源上沒有「Access-Control-Allow-Origin」標題。因此不允許訪問原產地'http://localhost:3000'。該響應的HTTP狀態碼爲500.}
如何在CORS中使用Spring 5路由器功能?
您可以用'.OPTIONS'不只是'.GET'作爲CORS的工作原理是首先發送一個選項請求來獲得頭與他們的權限。 –
@MartinBarker - 沒有工作 「XMLHttpRequest無法加載http:// ip:port/admin/organizations。對預檢請求的響應未通過訪問控制檢查:不存在'Access-Control-Allow-Origin'標頭因此不允許Origin'http:// localhost:3000'訪問,響應的HTTP狀態碼爲500.「 –
所以你有一個代碼錯誤,防止它響應選項請求使用類似ARC插件的鉻,並以這種方式進行調試看看你的服務器發送什麼錯誤,如果可以的話,如果不打開服務器上的錯誤日誌記錄並去日誌拖網 –