广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >如何解决Angular客户端请求Rest服务跨域的问题
  • 787
分享到

如何解决Angular客户端请求Rest服务跨域的问题

2024-04-02 19:04:59 787人浏览 泡泡鱼
摘要

这篇文章主要介绍了如何解决angular客户端请求Rest服务跨域的问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.问题描述:通过Or

这篇文章主要介绍了如何解决angular客户端请求Rest服务跨域的问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

1.问题描述:通过Origin是Http://localhost:4200请求http://localhost:8081的服务,控制台报错如下,但是Response为200。客户端和服务端IP相同,但是端口不同,存在跨域问题。

 代码如下:

XMLHttpRequest cannot load http://localhost:8081/api/v1/staffs. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:4200' is therefore not allowed access.

2.解决方法:在服务端/api/v1/staffs的Restful方法增加@CrossOrigin注解,比如:

@CrossOrigin(origins = "*", maxAge = 3600)
@RequestMapping(value = "/api/v1/staffs", produces = { "application/JSON" }, method = RequestMethod.GET)
RestResponseList<?> queryStaffs(@RequestParam(value = "limit", required = false, defaultValue = "20") int limit,
 @RequestParam(value = "offset", required = false, defaultValue = "0") int offset);

3.重新发送请求http://localhost:8081/api/v1/...,请求成功。且响应头增加了Access-Control-Allow-Credentials和Access-Control-Allow-Origin参数。@CrossOrigin注解即是给响应头增加了这两个参数解决跨域问题。

如何解决Angular客户端请求Rest服务跨域的问题

4.在服务端POST方法同样使用注解@CrossOrigin解决跨域问题。

@CrossOrigin(origins = "*", maxAge = 3600)
@RequestMapping(value = "/api/v1/staffs", produces = { "application/json" }, method = RequestMethod.POST)
RestResponse<?> createStaff(@RequestBody RestRequest<StaffReqInfo> request);

报错如下:

如何解决Angular客户端请求Rest服务跨域的问题

5.查看响应码415,错误原因:

"status": 415,
"error": "Unsupported Media Type",
"exception": "org.springframework.WEB.HttpMediaTypeNotSupportedException",
"message": "Content type 'text/plain;charset=UTF-8' not supported"

6.进一步查看请求头信息,content-type为text/plain。与Response Headers的Content-Type:application/json;charset=UTF-8类型不匹配,故报错。

如何解决Angular客户端请求Rest服务跨域的问题

7.指定请求头content-type为application/json,比如在Angular中增加Headers。发送Post请求,请求成功。

let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers });

return this.http.post(this.staffCreateURL, body, options).map((response: Response) => {
 //return this.http.get(this.userLoginURL).map((response:Response)=> {
 let responseInfo = response.json();
 console.log("====请求staffCreateURL成功并返回数据start===");
 console.log(responseInfo);
 console.log("====请求staffCreateURL成功并返回数据end===");
 let staffName = responseInfo.responseInfo.staffName;
 console.log(staffName);
 return responseInfo;
})

另:也可以在httpservletResponse对象通过setHeader("Access-Control-Allow-Origin", "*")方法增加响应头参数,解决跨域问题,即是@CrossOrigin注解方式。推荐使用注解,方便。

感谢你能够认真阅读完这篇文章,希望小编分享的“如何解决Angular客户端请求Rest服务跨域的问题”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网node.js频道,更多相关知识等着你来学习!

--结束END--

本文标题: 如何解决Angular客户端请求Rest服务跨域的问题

本文链接: https://www.lsjlt.com/news/73498.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何解决Angular客户端请求Rest服务跨域的问题
    这篇文章主要介绍了如何解决Angular客户端请求Rest服务跨域的问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.问题描述:通过Or...
    99+
    2022-10-19
  • vue如何解决axios请求前端跨域问题
    目录前言一、为什么会出现跨域的问题?二、解决方案跨域资源共享(CORS)写在最后前言 最近在写纯前端的vue项目的时候,碰到了axios请求本机的资源的时候,出现了访问报404的问...
    99+
    2022-11-12
  • 如何解决Ajax请求跨域问题
    这期内容当中小编将会给大家带来有关如何解决Ajax请求跨域问题,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、解决方案:1,在服务器端的响应头中添加一个http参数:res.setHeader(&quo...
    99+
    2023-06-08
  • 如何解决Ajax请求WebService跨域问题
    这篇文章主要介绍如何解决Ajax请求WebService跨域问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、背景  用Jquery中Ajax方式在asp.net开发环境中Web...
    99+
    2022-10-19
  • vue如何解决axios请求出现前端跨域问题
    本篇内容主要讲解“vue如何解决axios请求出现前端跨域问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue如何解决axios请求出现前端跨域问题”吧!在...
    99+
    2022-10-19
  • springboot 如何解决cross跨域请求的问题
    目录springboot 解决cross跨域请求1.使用ajax发送跨域请求接口时2.在被跨域请求的一方配置3.再次测试4.对于只有个别需要开放跨域请求的接口可以这样玩5.其它解决跨...
    99+
    2022-11-12
  • Security框架:如何使用CorsFilter解决前端跨域请求问题
    目录项目情况CORS介绍解决方案项目情况 最近做的pmdb项目是前后端分离的, 由于测试的时候是前端与后端联调,所以出现了跨域请求的问题。 浏览器默认会向后端发送一个Options方...
    99+
    2022-11-12
  • gateway网关与前端请求跨域问题的解决方案
    gateway网关与前端请求的跨域问题 最近因项目需要,引入了gateway网关。可是发现将前端请求的端口指向网关后,用postman发送请求是正常的,用浏览器页面点击请求会出现跨域...
    99+
    2022-11-12
  • ajax跨域请求js拒绝访问的问题如何解决
    本篇内容介绍了“ajax跨域请求js拒绝访问的问题如何解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2022-10-19
  • 如何解决ajax跨域请求数据cookie丢失的问题
    本篇内容介绍了“如何解决ajax跨域请求数据cookie丢失的问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有...
    99+
    2022-10-19
  • 如何解决JQuery Ajax执行跨域请求数据的问题
    这篇文章将为大家详细讲解有关如何解决JQuery Ajax执行跨域请求数据的问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体如下原来的ajax请求如下:$.ajax...
    99+
    2022-10-19
  • 如何解决vue中$http的get和post请求跨域问题
    这篇文章给大家分享的是有关如何解决vue中$http的get和post请求跨域问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。vue $http的get和post请求跨域问题首先在config/index.js...
    99+
    2023-06-15
  • 如何使用proxytable配置解决vue-cli的跨域请求问题
    小编给大家分享一下如何使用proxytable配置解决vue-cli的跨域请求问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!...
    99+
    2022-10-19
  • 详解如何使用Jersey客户端请求Spring Boot(RESTFul)服务
    使用Jersey客户端请求Spring Boot服务可以通过以下步骤实现:1. 添加Jersey依赖:在你的项目中添加Jersey依...
    99+
    2023-08-17
    Jersey
  • 关于后端如何解决跨域的问题说明
    目录什么是跨域请求什么是同源策略同源策略限制内容有那什么又是同源?跨域解决方案1.jsonp2.cors3.@CrossOrigin注解4.使用SpringCloud网关5.Node...
    99+
    2022-11-13
  • 如何解决mysql客户端显示乱码的问题
    这篇文章主要介绍“如何解决mysql客户端显示乱码的问题”,在日常操作中,相信很多人在如何解决mysql客户端显示乱码的问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何...
    99+
    2022-10-18
  • 如何解决C#版Nebula客户端编译的问题
    小编给大家分享一下如何解决C#版Nebula客户端编译的问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、需求背景从Nebula的Github上可以发现,Ne...
    99+
    2023-06-20
  • springboot如何实现异步响应请求(前端请求超时的问题解决)
    目录问题解决方案1.服务端异步处理2.设置响应时间需要避免踩到的坑1.关于dubbo中的设置2.关于tomcat的设置3.关于Nginx的设置总结问题 实际场景中会遇到请求业务处理流...
    99+
    2023-01-30
    springboot 异步响应请求 springboot异步请求处理 springboot异步接口响应
  • 在LayUI图片上传中如何解决由跨域问题引起的请求接口错误
    这篇文章将为大家详细讲解有关在LayUI图片上传中如何解决由跨域问题引起的请求接口错误,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在LayUI图片上传中,解决由跨域问题...
    99+
    2022-10-19
  • node.js如何解决客户端请求数据里面中文乱码的事件
    这篇文章将为大家详细讲解有关node.js如何解决客户端请求数据里面中文乱码的事件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。node.js解决客户端请求数据里面中文乱码的事件例如代码:var ...
    99+
    2023-06-22
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作