尽管具有以下配置,但访问http://localhost:8080/rooms/rooms.json给我一个CORS错误-所请求的资源上没有'Access-Control-Allow-Origin'标头。
我没有问题可以请求控制器映射的任何其他路径。静态资源有什么问题?如何在没有Spring安全性的情况下允许cors请求或排除资源路径?
Spring Boot 2.0.5
Spring Boot Web Starter 2.0.5
var property = environment.getProperty("spring.datasource.url");
答案 0 :(得分:0)
将@CrossOrigin(value = "*")
添加到您的控制器类。您可以将*替换为任何特定的URL,以防仅允许该来源。
答案 1 :(得分:0)
@CrossOrigin(origins = "http://localhost")
@GetMapping("/rooms/")
public Object rooms() {
// your implementation
}
您可以通过这种方式完成。
答案 2 :(得分:0)
像下面这样更新<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/home_fragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".home_fragment">
<android.support.v7.widget.CardView
android:id="@+id/first_card"
android:layout_width="200dp"
android:layout_height="100dp"
android:layout_marginTop="200dp"
app:cardBackgroundColor="@color/colorAccent"
app:cardCornerRadius="15dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent">
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toRightOf="parent">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginBottom="8dp"
android:text="Button 1 "
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintBottom_toBottomOf="parent"/>
</android.support.constraint.ConstraintLayout>
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
android:id="@+id/second_card"
android:layout_width="200dp"
android:layout_height="100dp"
android:layout_marginTop="56dp"
app:cardBackgroundColor="@color/colorAccent"
app:cardCornerRadius="20dp"
app:layout_constraintStart_toStartOf="@id/first_card"
app:layout_constraintTop_toBottomOf="@id/first_card">
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toRightOf="parent">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button 2 "
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintBottom_toBottomOf="parent" />
</android.support.constraint.ConstraintLayout>
</android.support.v7.widget.CardView>
</android.support.constraint.ConstraintLayout>
可能会起作用
addCorsMappings
答案 3 :(得分:0)
https://www.viator.com/orion/nova/public/mmblite/styles-53929dcb.css
实际上遇到了相同的问题,但是找到了根本原因并解决了。
您的请求很可能是由中介进行缓存的:负载平衡器,CDN或将HTTP服务器作为常规的非CORS请求缓存在应用程序的前面。然后,您使用Origin:
发送了请求,但是中介返回了相同的缓存响应,因为默认情况下,从缓存响应的角度来看,它们是由/path
+ METHOD
+ {{1 }}-header相同。为了告诉缓存,具有Host:
的请求和常规请求(无Origin:
的请求都需要作为独立条目缓存在任何缓存中,我们在两个响应中都需要Origin:
标头。此问题已固定/实现在Spring 5.2.x中(在我的情况下是Spring 5.1.9),在您的情况下是5.0.9(依赖于Spring Boot 2.0.5。)一旦升级到Spring 5.2.0,所有的内容都将在缓存中得到修复。我建议升级到5.2.6以上(因为在CORS处理中还有进一步的更改,很高兴能做到)。
这是他们(关键)提交给Spring的那行(有所不同):https://github.com/spring-projects/spring-framework/commit/d27b5d0ab6e8b91a77e272ad57ae83c7d81d810b#r36264428
及其错误描述:https://github.com/spring-projects/spring-framework/issues/22273