在Angular项目中,可以通过修改代理配置文件来解决跨域问题。以下是一个示例:
proxy.conf.json
的文件,并添加以下内容:{
"/api/*": {
"target": "http://localhost:8080",
"secure": false,
"logLevel": "debug",
"changeOrigin": true
}
}
上述配置将代理所有以/api/
开头的请求到http://localhost:8080
。
package.json
文件中的scripts
部分添加一个新的脚本:"start": "ng serve --proxy-config proxy.conf.json"
上述配置将在启动Angular开发服务器时使用代理配置文件。
npm start
现在,Angular应用程序将使用代理配置文件将所有以/api/
开头的请求代理到http://localhost:8080
,解决了跨域问题。
如果使用了Maven和Spring Boot作为后端,还需要在Spring Boot中进行一些配置来启用CORS。以下是一个示例:
@CrossOrigin(origins = "http://localhost:4200")
注解,指定允许访问的来源。例如:@RestController
@RequestMapping("/api")
@CrossOrigin(origins = "http://localhost:4200")
public class MyController {
// Controller methods
}
上述配置将允许来自http://localhost:4200
的请求访问/api
路径。
application.properties
文件中添加以下配置:spring.mvc.dispatch-options-request=true
上述配置将允许Spring Boot处理预检请求(OPTIONS请求)。
现在,Angular应用程序将能够通过代理发送带有正确CORS头的请求到Spring Boot后端。