首页 > 编程语言 >解决javascript调用本地sanic接口报跨域错误的问题

解决javascript调用本地sanic接口报跨域错误的问题

时间:2023-04-11 13:11:07浏览次数:44  
标签:Control 跨域 javascript request Access headers allow sanic response

在py代码中利用middleware()方法修饰request/response即可,无需别的操作。 

app=Sanic('Sanic_Server')

@app.middleware("request")
def cors_middle_req(request: Request):
    """路由需要启用OPTIONS方法"""
    if request.method.lower() == 'options':
        allow_headers = [
            'Authorization',
            'content-type'
        ]
        headers = {
            'Access-Control-Allow-Methods':
                ','.join(['GET','POST','OPTIONS']),
            'Access-Control-Max-Age': '86400',
            'Access-Control-Allow-Headers': ', '.join(allow_headers),
        }
        return HTTPResponse('', headers=headers)

@app.middleware("response")
def cors_middle_res(request: Request, response: HTTPResponse):
    """跨域处理"""
    allow_origin = '*'
    response.headers.update(
        {
            'Access-Control-Allow-Origin': allow_origin,
        }
    )

 

标签:Control,跨域,javascript,request,Access,headers,allow,sanic,response
From: https://www.cnblogs.com/aaronhoo/p/17305898.html

相关文章

  • JavaScript 的 ==、===、区别
    在JavaScript中,==和===都是用于比较两个值是否相等的运算符。它们之间的主要区别在于类型转换方面。具体来说:== 运算符在检查相等性之前会根据需要进行类型转换,将不同类型的值转换为相同类型。例如,如果一个操作数是字符串类型,另一个是数字类型,那么字符串会被转换成数字后......
  • Charles:解决Charles映射本地时,option请求的跨域问题
    解决方案原因关于为什么会出现该问题,请参考:https://juejin.cn/post/7021077647417409550解决1、查看页面option接口的请求头中带『Access-Control』开头的header2、通过Charles的rewrite功能修改映射时的header3、具体配置如下:4、再次访问后,即可正常映射参考链接ht......
  • 前端webpack开发阶段解决跨域问题
    通过配置代理解决  1'/API':{2target:'https://xiaoapi.cn/API',//你请求的第三方接口3logLevel:"debug",//开启debug模式后,可在终端查看代理的真实请求地址4//ws:true,//代理websockets5changeOrigin:true,/*在......
  • JavaScript 去除数组中重复的元素 得到新数组
    方法一:思路:准备一个新数组,将原数组中的元素一一放入新数组,放入之前判断该元素是否存在新数组中,不存在的话就直接存入新数组。functionuniqueArr(arr){ varnewArr=[]; for(leti=0;i<arr.length;i++){ if(newArr.indexOf(arr[i])==-1){ newArr.push(arr[i]); } } r......
  • Javascript 原型与原型链
    在BrendanEich设计Javascript时,借鉴了Self和Smalltalk这两门基于原型的语言。之所以选择基于原型的面向对象系统,是因为BrendanEich一开始没有打算在JavaScript中加入类的概念,其设计初衷是为非专业的开发人员提供一个方便的工具,使其使用尽可能简单、易学。随着人们对网页要求的逐......
  • 巧用Nginx配置解决跨域问题
    页面nginx配置1,前端页面放在域名根目录,比如,http://www.xuecheng.com/,对应的nginx配置:#门户location/{aliasD:/Z_lhy/SpringCloud/xuecheng_online/www/xc-ui-pc-static-portal/;indexindex.html;}页面目录:接口nginx配......
  • kettle从入门到精通 第十一课 kettle javascript 解析json数组
    1、json步骤虽然可以解析json数组,但是不够灵活。通过javascript步骤来解析json数组比较灵活,且可以按照需要组装数据流转到下个步骤。1)步骤名称:可以自定义2)TransformScripts:当前步骤编写的javascript脚本3)TransformConstants:重新定义的静态常量,用于控制数据行发生的情况。您必......
  • express设置跨域
    在app.js的设置中添加//设置允许跨域访问该服务.app.all('*',function(req,res,next){res.header('Access-Control-Allow-Origin','*');res.header('Access-Control-Allow-Headers','Content-Type');res.header(�......
  • 跨域的另一种设置方式
    为了等保一些信息安全之类的问题:需要为系统添加访问白名单,限制哪些IP与端口号可以访问系统,其他的一概不能访问这里涉及到前后端分离,跨域问题可以参考:https://blog.csdn.net/qq_16771097/article/details/117442727需要在CrosConfig类型添加设置配置在配置文件内极少代码改......
  • js:浏览器跨域ajax变通实现 -- flash + js + crossdomain.xml
    使用此方式能很好解决这个问题,因为考虑了php中转形式的双倍时间和莫须有的访问,不是很愿意用,除非不得已,现在找到flash的实现方法,对于能自按的服务器来说这是不错的解决方案,只需要担心的是有人不愿意安装flash控件,且能解决script方式的不能post不足,除非浏览器已经统一支持跨......