【发布时间】:2019-09-26 00:20:18
【问题描述】:
我正在尝试使用 Angular 和节点 js 创建 Rest Response 模拟器(如邮递员)。每当我尝试发送请求时,它都会给我 CORS(跨源资源共享)错误。 我发现使用 proxy.config 解决了我们在目标中提供主机的问题。但在我的情况下, URL 是动态的。我无法在 proxy.config 文件中定义所有目标。 我该如何解决这个问题?
【问题讨论】:
我正在尝试使用 Angular 和节点 js 创建 Rest Response 模拟器(如邮递员)。每当我尝试发送请求时,它都会给我 CORS(跨源资源共享)错误。 我发现使用 proxy.config 解决了我们在目标中提供主机的问题。但在我的情况下, URL 是动态的。我无法在 proxy.config 文件中定义所有目标。 我该如何解决这个问题?
【问题讨论】:
在您的服务器脚本中添加以下代码
app.all("/api/*", function (req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Cache-Control, Pragma, Origin, Authorization, Content-Type, X-Requested-With");
res.header("Access-Control-Allow-Methods", "GET, PUT, POST");
return next();
});
如果您在 springboot 中使用 angular,您只需在控制器定义之前添加以下行
@CrossOrigin(origins="http://localhost:4200",allowedHeaders="*")
例如:
@RestController
@CrossOrigin(origins="http://localhost:4200",allowedHeaders="*")
public class AccountController {
@Autowired
private AccountServiceImpl accountService;
@RequestMapping("/hello")
public String startPage(){
return "Hi";
}
}
它将解决问题。
【讨论】: