美文网首页
跨域的解决方案

跨域的解决方案

作者: 璃安_ | 来源:发表于2022-10-19 14:25 被阅读0次

跨域的概念

1.“源”由协议、域名、端口号组成
2.两个地址是否同源,取决于 http协议,域名/IP,端口号是否全部一致
3.违反了同源策略的请求就是通常说的跨域请求

一,express使用中间件cors

使用步骤

  • 运行npm install cors安装中间件
  • 使用const cors = require('cors')导入中间件
  • 在路由之前调用app.use(cors())配置中间件
//下包
npm install cors
//配置中间件
var cors = require('cors')
app.use(cors())
app.use((req, res, next) => {//任何请求都会进入这个use中间件 
res.setHeader('Access-Control-Allow-Origin', '*')//设置响应头 
next()//执行下一个中间件  })

开启全局跨域
// 放在所有请求前面
app.all('*',(req,res,next)=>{

 res.header("Access-Control-Allow-Origin", "*");
 res.header('Access-Control-Allow-Headers', 'Content-Type, Content-Length, Authorization, Accept, X-Requested-With');
 res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
 next()

})

二,jQuery中的jsonp

浏览器:自定义响应回调函数,使用script标签的src请求
利用浏览器的src属性没有跨域这一限制特点
服务器:接收callback参数,返回函数调用
处理复杂,并且只支持get请求
原因:get请求参数直接在url后面拼接,而post请求参数是放在请求体中

dataType:'jsonp'
$.ajax({
        url: 'https://wis.qq.com/weather/common',
        data: {
            source: 'pc',
            weather_type: 'forecast_24h',
            province: '湖北省',
            city: '武汉市'
        },
        dataType: 'jsonp',
        success(res) {
            // console.log(info);
            console.log(res);
            let {
                data: {
                    forecast_24h: info
                }
            } = res
            for (let key in info) {
                // console.log(info[key]);
                let lis = document.createElement('li')
                lis.innerHTML = `<div class="time">${info[key].time}</div>
                <div class="wendu">${info[key].max_degree} </div>
                <div class="tianqi">${info[key].day_weather_short}</div>
                <div class="fengxiang">${info[key].day_wind_power}</div>
                <div class="fengli">${info[key].day_wind_direction}</div>
                    `
                ul.appendChild(lis)
            }
        }
    })

相关文章

  • Web前后端跨域问题处理

    跨域问题有前台跨域(iframe间)和后台跨域。 前台跨域的解决方案可以采用跨域文档通讯(Cross domain...

  • 跨域问题,解决方案

    跨域问题,解决方案 - Nginx反向代理跨域问题,解决方案 - CORS方案此为原作者的链接:跨域问题,解决之道

  • 浏览器跨域及其解决方案

    title: 浏览器跨域及其解决方案author: Maydate: 20220428 什么是跨域跨域的表现解决跨...

  • 前端如何解决常见跨域问题

    跨域解决方案 1、 通过jsonp跨域 2、 document.domain + iframe跨域 3、 loca...

  • 开发环境跨域和生产环境跨域

    开发环境跨域 前后端分离,IP地址不同,请求数据必然导致跨域问题;解决方案:proxy设置 生产环境跨域 解决方案...

  • 跨域解决方案

    跨域解决方案 跨域解决方案有:设置document.domain,使用带src标签,JSONP,navigatio...

  • 跨域

    参考资料 HTTP访问控制(CORS)跨域解决方案跨域详解

  • Angular访问WebApi出现options方法

    解决方案: 解决跨域:

  • 跨域解决方案(史上最易懂)

    跨域总结 1.跨域思路 跨域解决方案一般分为两种:前端解决,后端解决 1.1 前端解决方案 通过前端解决的思想就是...

  • ZUUL跨域问题

    云环境中每个服务自己有跨域解决方案,而网关需要做最外层的跨域解决方案.如果服务已有跨域配置网关也有,会出现*多次配...

网友评论

      本文标题:跨域的解决方案

      本文链接:https://www.haomeiwen.com/subject/zqjszrtx.html