首页 > 解决方案 > TypeError : NetworkError 尝试获取资源时

问题描述

我正在尝试让我的 Firefox 扩展程序向/从正在运行的 spring boot 应用程序发送/接收数据,localhost:8080/但我收到了这个错误。

这是请求 -

    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: *

标签: javascriptspring-bootfirefox-addonfetch-api

解决方案


发现问题

我决定尝试相同的 GET 请求,但使用 XHR 并得到状态 0 和空的 responsetext 。在寻找可能是什么原因时,我找到了这个答案,所以我在我的 fetch API 请求中替换为它并且它有效localhost:8080/allhttp://localhost:8080/all我猜这是权限问题。


推荐阅读