How to handle cross-domain requests in Java backend function development?
In the development mode where the front-end and back-end are separated, it is a very common scenario for the front-end to send requests to the back-end API interface to obtain data through JavaScript. However, due to the browser's same-origin policy, there are restrictions on cross-domain requests. Cross-domain request means that the front-end page requests servers with different domain names, different ports or different protocols through AJAX and other methods. This article will introduce a common method for handling cross-domain requests in the development of Java back-end functions, with code examples.
The common way to solve cross-domain problems is to make corresponding configurations on the backend. The following uses the Spring Boot framework as an example to introduce how to handle cross-domain requests.
Add CrossOrigin annotation on the backend Controller method. This annotation is used to configure the domain name, request method and other related parameters that allow cross-domain. The following is an example:
@RestController @RequestMapping("/api") @CrossOrigin(origins = "http://frontend.com", methods = {RequestMethod.GET, RequestMethod.POST}) public class MyController { // Controller方法... }
In the above code, the @CrossOrigin annotation specifies that the domain name of http://frontend.com is allowed to initiate GET and POST requests. You can modify these parameters according to your needs.
Through the configuration file, global cross-domain request processing can be achieved. Add the following configuration to the Spring Boot project configuration file (such as application.properties):
spring.webmvc.cors.allowed-origins=*
The above code indicates that all domain names are allowed to initiate cross-domain requests. You can also specify a specific domain name, such as:
spring.webmvc.cors.allowed-origins=http://frontend1.com,http://frontend2.com
In addition to the above two methods, you can also use Filter to handle cross-domain requests. . Create a class that implements the Filter interface, and then add cross-domain processing logic in the doFilter method. The following is an example:
@Component public class CorsFilter implements Filter { @Override public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletResponse response = (HttpServletResponse) res; response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS"); response.setHeader("Access-Control-Max-Age", "3600"); response.setHeader("Access-Control-Allow-Headers", "Content-Type, Authorization, X-Requested-With"); chain.doFilter(req, res); } }
In the above code, the configuration to allow cross-domain requests is implemented by setting the response header.
To sum up, there are many ways to handle cross-domain requests in Java back-end function development. Just choose the appropriate method according to actual needs. The above provides sample code for using CrossOrigin annotations, configuring Spring Boot global cross-domain configuration, and using Filter to handle cross-domain requests. I hope it will help you with cross-domain issues during development.
The above is the detailed content of How to handle cross-domain requests in Java backend function development?. For more information, please follow other related articles on the PHP Chinese website!