uniapp开发跨域及生产跨域

问题描述

项目中需要请求搜狐的接口http://pv.sohu.com/cityjson获取客户端当前ip,但这个接口不允许ajax跨域请求,解决方案如下(跨域通用)

开发环境

//在uni-app 的项目中 manifest.json文件中配置跨域代理
   "h5": {
		"devServer": {
			"port": 8000,
			"disableHostCheck": true,
			"proxy": {
				"/sohu": {
					"target": "http://pv.sohu.com",
					"changeOrigin": true,
					"secure": false,
					"pathRewrite": {
						"^/sohu": ""
					}
				}
			}
		}
	}
//在组件中访问
uni.request({
    url: '/sohu/cityjson',
    success: (res) => {
        console.log(res.data);
    }
});

生产环境

配置 nginx

server {
        listen       80;
        server_name  自己项目的访问域名;
        root /var/www/html/test;
        index index.html;
		#这一行是解决跨域重点,并且要放在下面两个location之前
        location /sohu {
            rewrite ^/sohu/(.*)$ /$1 break;
            proxy_pass http://pv.sohu.com;
        }

        location / {
            try_files $uri $uri/ @router;
            index index.html;
        }

        location @router {
            rewrite ^.*$ /index.html last;
        }
    }
在uni-app开发,如果需要解决app跨域问题,可以采取以下方法: 方法一:在项目的根目录下的manifest.json文件添加h5配置。在h5配置,可以使用devServer来配置代理。通过配置代理,将请求转发到目标服务器上,从而实现跨域请求。具体的配置可以参考uni-app的文档说明\[2\]。 方法二:在项目的根目录下的manifest.json文件的devServer配置多个跨域地址。通过配置多个跨域地址,可以实现对不同的接口进行跨域请求。具体的配置可以参考uni-app的文档说明\[3\]。 需要注意的是,跨域问题只会出现在浏览器上,对于小程序和APP开发来说,不会有跨域问题\[1\]。 #### 引用[.reference_title] - *1* *2* [uniapp跨域问题解决](https://blog.csdn.net/qq_40999917/article/details/130756700)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [uniapp跨域设置](https://blog.csdn.net/HYQ_java/article/details/120157680)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值