Ich habe eine neue und einfache Spring MVC-Anwendung erstellt (4.2.1.Release verwendet, jetzt auf 4.2.7.Release geschaltet). Die App ist einfach:Frühling MVC 4.2 + CORS Rückkehr 403
Web.xml:
<servlet>
<servlet-name>proxy</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
<init-param>
<param-name>dispatchOptionsRequest</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:my-cool-context.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>proxy</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
Kontext:
<context:component-scan base-package="my.supercool.company.app"/>
<mvc:cors>
<mvc:mapping path="/**" allowed-methods="POST, OPTIONS" />
</mvc:cors>
Und der Controller
@Controller
@RequestMapping("/")
@CrossOrigin
public class MySupercoolController {
@CrossOrigin
@RequestMapping(path="test", method = RequestMethod.POST)
@ResponseBody
private ResponseEntity<String> executePostProxy(HttpServletRequest request){
return new ResponseEntity<String>("TEST", HttpStatus.OK);
}
}
jetzt - der Controller selbst arbeitet und gibt meinen Text , so wird der Controller in den Kontext geladen. Die PreflightRequest-Anforderung für diesen Endpunkt erhält jedoch die Forbidden-Antwort 403, und die CORS-Antwortheader sind nicht festgelegt. Ich verwende JBOSS, aber ich habe überprüft, dass die OPTIONS-Anfrage zu Spring gelangt (die FrameworkServlet-doOptions-Methode wird ausgeführt, über Debugger überprüft). Gibt es noch etwas, das ich im Frühjahr MVC für CORS konfigurieren sollte?
BTW Der Kontext CORS Config und Annotation config - Ich habe versucht, damit es funktioniert, also versuchte ich mit XML, Anmerkungen und beiden.
'allowed-Methoden = "GET, PUT"' 'vs. @RequestMapping (path = "test", method = RequestMethod.POST)' – zeroflagL
@zeroflagL änderte es, half nicht :( – maslan
@zeroflagL Ich löschte auch die mvc: cors aus dem XML und verließ nur die Annotationen. Hat auch nicht geholfen – maslan