当前位置: 首页 > 知识库问答 >
问题:

“CORS标头'Access-Control-Allow-Origin'Missing'拒绝请求,即使origin是允许的

公冶京
2023-03-14
@RestController
@CrossOrigin(origins = "http://localhost:4200")
public class Controller {

    @Autowired
    private ReqRepository reqRepository;

    @PostMapping("/reqs")
    public Req saveReq (@Valid @RequestBody Req req) {
        return reqRepository.save(req);
    }
}
@Repository
public interface ReqRepository extends JpaRepository<Req, Long> {
}
@Injectable()
export class ReqService {

  private httpOptions = {
    headers: new HttpHeaders({
      'Access-Control-Allow-Origin': '*',
      'Content-Type': 'application/json'
    })
};

  constructor(private http: HttpClient) {}

  sendReq(req: Req): Observable<Req> {
    return this.http.post<Req>('http://localhost:8080/reqs', req, this.httpOptions);
  }
}

我进一步测试了控制器,它适用于GET请求。我只是更改了方法,所以问题似乎出在POST请求上。下面用GET测试endpoint而不是POSTendpointist控制器

@RestController
@CrossOrigin(origins = "http://localhost:4200")
public class Controller {

    @Autowired
    private ReqRepository reqRepository;

    @GetMapping("/reqs")
    public Page<Req> testCall (Pageable pageable) {
        System.out.println("Geeting request");
        return reqRepository.findAll(pageable);
    }
}

共有1个答案

邢心水
2023-03-14

很高兴你的要求现在起作用了。请注意'access-control-allog-origin':'*'是从服务器发送的标头。在这里,您试图将头从angular发送到服务器,但这将不起作用

另外,请更改@crossorigin(origins=“http://localhost:4200”)

@crossorigin(origins=“http://localhost:4200”,methods=“get,POST,PUT,DELETE,origin”)查看它是否有效

 类似资料:
  • Response.AddHeader(“Access-Control-Allow-Origin”,“*”)是如何实现的;行设置多个标题时,包括,但没有当我删除它?

  • 我想从angular应用程序向服务器发送POST请求(用spring boot编写)。请求被拒绝,消息为“cors header'access control allow origin'missing”。 我启用了我的角度应用程序“http://localhost:4200”的起源,就像我为我的其他RestController(工作)所做的那样。据我所知,唯一的区别是我在我不工作的控制器中处理PO

  • 问题内容: 我正在尝试使用发布请求将文件发送到服务器,但是在发送请求时会导致错误: Access-Control-Allow-Headers不允许请求标头字段Content-Type。 所以我搜索了错误并添加了标题: 然后我得到错误: Access-Control-Allow-Headers不允许请求标头字段Access-Control-Allow-Origin 所以我用谷歌搜索,唯一能找到的类似

  • 我正在尝试将文件发送到我的服务器,并发送post请求,但当它发送时会导致错误: Access-Control-Allow-Headers不允许请求标头字段Content-Type。 所以我搜索了这个错误并添加了标题: 然后我得到错误:

  • null 服务器的响应如下: XMLHttpRequest无法加载http://nqatalog.negroesquisso.pt/login.php。Access-Control-Allow-Origin不允许Origin 。 如何解决此问题?

  • 我从ASP.NET表单中调用这个函数,在调用Ajax时在firebug控制台中得到以下错误。 跨源请求被阻止:同一源策略不允许读取http://anotherdomain/test.json上的远程资源。(原因:CORS标头“Access-Control-Allow-Origin”丢失)。 我做了其他的方法,但仍然找不到解决办法。 注意:我没有服务器权限进行服务器端(API/URL)更改。