我正在尝试让我的Firefox扩展程序与运行在localhost:8080/
上的spring boot应用程序之间进行数据收发,而我收到此错误消息。
这是请求-
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="*")
我已在扩展名清单的"*://localhost/"
中添加了permissions
。
我知道服务器可以正常工作,并且它不是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: *
答案 0 :(得分:0)
发现问题
我决定尝试使用XHR尝试相同的GET请求,并得到状态0和空的responsetext。在搜索可能是找到this answer的原因之后,我在提取API请求中将localhost:8080/all
替换为http://localhost:8080/all
并成功了。我想这是一个权限问题。