tornado django flask 跨域解决办法(cors)

XMLHttpRequest cannot load http://www.baidu.com. No ‘Access-Control-Allow-Origin‘ header is present on the requested resource. Origin ‘http://10.16.16.25:9988‘ is therefore not allowed access.

tornado

这个就是典型的cors,允许后端允许跨域的方法。第二种方法,反向代理还在实践中

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import tornado.ioloop
import tornado.web
import json

class IndexHandler(tornado.web.RequestHandler):
    def get(self):
        self.render(‘index.html‘)

class AaaHandler(tornado.web.RequestHandler):
    def post(self, *args, **kwargs):
        ret = self.get_argument("k1")
        print(ret)

        self.set_header("Access-Control-Allow-Origin", "*")
        self.set_header("Access-Control-Allow-Headers", "x-requested-with")
        self.set_header(‘Access-Control-Allow-Methods‘, ‘POST, GET, OPTIONS‘)
        self.write(json.dumps("aa"))

settings = {

    ‘template_path‘: ‘views‘,
    ‘static_path‘: ‘static‘,
    ‘static_url_prefix‘: ‘/static/‘,
}

application = tornado.web.Application([
    (r"/index", IndexHandler),
    (r"/aaa", AaaHandler),

], **settings)

if __name__ == "__main__":
    application.listen(8888)
    tornado.ioloop.IOLoop.instance().start()

Flask

from functools import wraps
from flask import make_response

def allow_cross_domain(fun):
    @wraps(fun)
    def wrapper_fun(*args, **kwargs):
        rst = make_response(fun(*args, **kwargs))
        rst.headers[‘Access-Control-Allow-Origin‘] = ‘*‘
        rst.headers[‘Access-Control-Allow-Methods‘] = ‘PUT,GET,POST,DELETE‘
        allow_headers = "Referer,Accept,Origin,User-Agent"
        rst.headers[‘Access-Control-Allow-Headers‘] = allow_headers
        return rst
    return wrapper_fun

@app.route(‘/hosts/‘)
@allow_cross_domain
def domains():
    pass

django

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from django.shortcuts import render
from django.shortcuts import redirect

# Create your views here.

from app01 import models
import datetime
import json
from django.shortcuts import HttpResponse
from infrastructure.model.enterprise_news_data import Enterprise_news_Data
from infrastructure.model.enterprise_news_data import Enterprise_News_Id_Info_Data
from infrastructure.public import status_info
from django.views.decorators.csrf import csrf_exempt

@csrf_exempt
def enterprise_news(request):
    """
    企业信息
    :param request:
    :return:
    """
    if request.method == ‘POST‘:
        ret = Enterprise_news_Data().select_enterprise_news()
        return_status = status_info.api_status()
        return_status.status["status"] = 0
        return_status.status["message"] = "成功"
        return_status.status["return_info"] = ret
        print(return_status.status)
        # return HttpResponse(json.dumps(ret))
        response = HttpResponse(json.dumps(return_status.status))
        response["Access-Control-Allow-Origin"] = "*"
        return response
    else:
        return HttpResponse()
时间: 2024-08-08 22:01:28

tornado django flask 跨域解决办法(cors)的相关文章

js 利用iframe和location.hash跨域解决办法,java图片上传回调JS函数跨域

奶奶的:折腾了我二天,终于解决了!网上有很多例子. 但跟我的都不太一样,费话不多说了,上图   上代码: IE ,firefix,chrome 测试通过 js :这个主页面,部分代码, function submitUpload(id){ $("#imgSrc" + id +"").attr("alt", "图片上传中--"); var imgID = id; if(id>0){ imgID = 1; } var for

关于iFrame特性总计和iFrame跨域解决办法

1.iframe 定义和用法 iframe 元素会创建包含另外一个文档的内联框架(即行内框架). HTML 与 XHTML 之间的差异 在 HTML 4.1 Strict DTD 和 XHTML 1.0 Strict DTD 中,不支持 iframe 元素. 提示和注释: 提示:您可以把需要的文本放置在 <iframe> 和 </iframe> 之间,这样就可以应对无法理解 iframe 的浏览器. iframe标签是成对出现的,以<iframe>开始,</ifr

ajax跨域解决办法

在使用jquery的ajax作请求时,http://127.0.0.1:8080,类似这样的一个本地请求,会产生跨域问题, 解决办法一: jsonp: var url= "http://127.0.0.1:8080/botinterface/?p1="+input+"&callback=?"; jQuery('#input').val(''); replaceText('me',input); $.ajax({ type: "POST",

域名级跨域解决办法

跨域的解决办法很多,Jquery处理的就很好,现在Html5也开始支持跨域,不过现在毕竟Html还没有普及.那么在父子域名的情况下有没有一直简单的方法解决跨域问题?那是当然的! 下面是截得一个跨域说明表格 如果是一级域名相同,不同二级域名(与IP无关),且端口一致,那么解决办法很简单,只需要在涉及到的页面都加上一句 document.domain = 'test.com';//test.com为一级域名 还有一种解决办法,是使用父子域名.比如test.test.com,其子域名可为*.test.

请求跨域解决方法CORS

CORS全称Cross-Origin Resource Sharing,是HTML5规范定义的如何跨域访问资源. Origin表示本域,也就是浏览器当前页面的域.当JavaScript向外域(如sina.com)发起请求后,浏览器收到响应后,首先检查Access-Control-Allow-Origin是否包含本域,如果是,则此次跨域请求成功,如果不是,则请求失败,JavaScript将无法获取到响应的任何数据. 简单请求包括GET.HEAD和POST(POST的Content-Type类型 仅

JSONP 跨域解决办法

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8&

黄聪:Access-Control-Allow-Origin,JS跨域解决办法

.htaccess添加下面代码: <IfModule mod_headers.c> Header add Access-Control-Allow-Origin "*" </IfModule> web.config设置下面代码: .... <system.webServer> <httpProtocol> <customHeaders> <add name="Access-Control-Allow-Origi

解决ajax跨域的办法,代理,cors,jsonp

1.使用php做代理去请求第三方api接口 php是可以跨域的,我们利用ajax请求本域名中的php文件,php再去请求第三方接口文件,从而达到跨域目的. php做代理请求: ajax请求本域名php代理文件: 请求结果:成功 将数据取出: 结果: 2.通过PHP设置响应头允许跨域(CORS方式) CORS(跨域资源共享,Cross-Origin Resource Sharing)定义一种跨域访问的机制,可以让AJAX实现跨域访问.CORS 允许一个域上的网络应用向另一个域提交跨域 AJAX 请

c# WebApi之解决跨域问题:Cors

什么是跨域问题 出于安全考虑,浏览器会限制脚本中发起的跨站请求,浏览器要求JavaScript或Cookie只能访问同域下的内容.由于这个原因,我们不同站点之间的数据访问会被拒绝. Cors解决跨域问题 跨域资源共享( CORS )机制允许 Web 应用服务器进行跨域访问控制,从而使跨域数据传输得以安全进行.它解决跨域问题的原理是通过向http的请求报文和响应报文里面加入相应的标识告诉浏览器它能访问哪些域名的请求. 解决跨域问题实例 下面就写一个简单是实例来说明如何使用CORS解决跨域 1.建立