我试图让我的Firefox扩展向/从localhost:8080/上运行的spring启动应用程序发送/接收数据,但我得到了这个错误。
请求是这样的-
var req = new Request("localhost:8080/all", {
method: 'GET',
headers: { 'Accept': 'application/json' },
});下面是localhost:8080/all的控制器函数:
@GetMapping(path="/all")
public @ResponseBody Iterable<Product> getAllProducts()
{
return productrepository.findAll();
}我还向控制器类添加了@CrossOrigin(origins="*")
我已经在扩展的清单中向permissions添加了"*://localhost/"。
我知道服务器工作得很好,这不是CORS的问题,因为我在curl上试过了
curl -H "Origin:https://google.com/" -H "Accept:application/json" -H "method:GET" localhost:8080/all --verbose并返回这些响应头和输出json。
< HTTP/1.1 200
< Vary: Origin
< Vary: Access-Control-Request-Method
< Vary: Access-Control-Request-Headers
< Access-Control-Allow-Origin: *发布于 2019-10-16 22:01:25
找到问题所在
我决定尝试同样的GET请求,但使用XHR,得到的状态为0,响应文本为空。在寻找可能的原因时,我找到了this answer,所以我在fetch API请求中用http://localhost:8080/all替换了localhost:8080/all,它起作用了。我想这是一个权限问题。
https://stackoverflow.com/questions/58406083
复制相似问题