前后台分离项目的跨域问题

一般的web项目都是前台页面和后台类放在一个项目文件里,前后台交互不存在跨域问题。

但是对于前后台分离的项目,由于浏览器的同源安全策略,再用平时的方法是请求不到的,这时就要采取一些特殊手段。CORS是一个W3C标准,全称是”跨域资源共享”(Cross-origin resource sharing)。它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制

 

同源安全策略:浏览器只允许请求当前域的资源,而对其他域的资源表示不信任(只要不是一个端口就不是当前域)

 

方法一:

1、ajax设置支持跨域

    		//使ajax支持跨域
		$.support.cors = true;
		$.ajax({  
			url: 'http://100.24.254.106:8762/cskx/hello1',
			data: {"parameter1":"卡卡"},
			dataType: "text",
			type:"POST",
			success: function (response) {			
				console.log(response);			
			},
			error:function(response){
				console.log(response);
			},
		});	

2、后台类添加响应头

	@ResponseBody
	@RequestMapping("/hello1")
	public String test(HttpServletRequest request, HttpServletResponse response) {
		
		String parameter2 = request.getParameter("parameter1");
		System.out.println(parameter2);
		
		//跨域的响应头
		response.setHeader("Access-Control-Allow-Origin", "*");
		response.setHeader("Access-Control-Allow-Methods", "GET, POST, OPTIONS");
		response.setHeader("Access-Control-Allow-Headers", "*");
		  
		return "我是服务提供者1号";  

	}

方法二:

针对springboot项目,添加CorsConfig配置:

/*
 * 跨域支持
 */
@Configuration
public class CorsConfig implements WebMvcConfigurer {

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedOrigins("*")
                .allowCredentials(true)
                .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
                .maxAge(3600);
    }

}

方法三:

通过nginx实现跨域

1、修改nginx的配置文件nginx.conf

server {
        listen       8800;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }
        
        #支持跨域
        location /cskx {
            add_header 'Access-Control-Allow-Origin' $http_origin;
            add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
            add_header 'Access-Control-Allow-Headers' '*';
            proxy_pass http://100.24.254.106:8762/cskx;
        }

}

配置nginx监听8800端口,ajax请求的时候直接请求nginx服务器的8800端口,就会自动转到配置的服务上。

		$.ajax({  
			url: 'http://100.4.254.106:8800/cskx/hello1',
			data: {"parameter1":"卡卡"},
			dataType: "text",
			type:"POST",
			success: function (response) {			
				console.log(response);			
			},
			error:function(response){
				console.log(response);
			},
		});	

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要搭建一个使用Python作为后端,Vue作为端的后台分离项目,可以按照以下步骤进行: 1. 创建后端项目: - 使用Python的Web框架,如Flask或Django创建后端项目。 - 安装所需的依赖库,如Flask或Django的相关扩展、数据库驱动等。 - 设计和实现后端的API接口,包括路由、请求处理、数据库操作等。 - 运行后端项目,确保API接口正常工作。 2. 创建项目: - 使用Vue CLI等工具创建一个新的Vue项目。 - 安装所需的依赖库,如Axios用于与后端API进行通信、Vue Router用于路由管理等。 - 设计和实现端页面,包括组件、样式、路由等。 - 通过Axios等工具调用后端API,获取数据并渲染到端页面上。 3. 配置跨域访问: - 在后端项目中配置允许跨域访问,以便端可以与后端进行通信。具体配置方法根据所使用的Web框架而定。 4. 部署项目: - 部署后端项目到服务器或云平台,如使用Nginx、Gunicorn等工具来提供Web服务。 - 将项目打包为静态文件,并将其部署到Web服务器或云存储中。 5. 测试和调试: - 使用Postman等工具测试后端API的功能和性能。 - 在浏览器中访问端页面,确保页面正常加载和交互。 以上是一个基本的搭建流程,具体实现细节会根据项目需求和技术选型而有所差异。在搭建过程中,可以参考相关文档、教程和示例代码,以更好地理解和实现前后端分离项目

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值