解决跨域HttpResponseJsonCORS, HttpResponseCORS 返回字典数据

#!/usr/bin/python
# -*- coding: UTF-8 -*-
import json
from django.http import HttpResponse

def HttpResponseJsonCORS(request,s):
    response = HttpResponse(s,content_type="application/json")
    try:
        origin = request.META['HTTP_ORIGIN']
    except:
        origin = 'http://127.0.0.1'

    if origin.find("192.168") >0 :
        pass
    elif origin.find("127.0.0.1") >0 :
        pass
    # else:
    #     origin = front_url
    print origin
    response["Access-Control-Allow-Origin"] = "%s"%(origin)
    response["Access-Control-Allow-Credentials"] = "true"
    response["Access-Control-Allow-Methods"] = "POST, GET, OPTIONS"
    response["Access-Control-Max-Age"] = "1000"
    response["Access-Control-Allow-Headers"] = "*"
    return response

def HttpResponseCORS(request, s):
    response = HttpResponse(s)
    try:
        origin = request.META['HTTP_ORIGIN']
    except:
        origin = 'http://127.0.0.1'
    if origin.find("192.168") > 0:
        pass
    elif origin.find("127.0.0.1") > 0:
        pass
    # else:
    #     origin = front_url

    # sql = "insert into sql_log (`sql`) values ('%s')"%(origin)
    # print sql
    # db.executesql(sql)

    response["Access-Control-Allow-Origin"] = "%s" % (origin)
    response["Access-Control-Allow-Credentials"] = "true"
    response["Access-Control-Allow-Methods"] = "POST, GET, OPTIONS"
    response["Access-Control-Max-Age"] = "1000"
    response["Access-Control-Allow-Headers"] = "*"
    return response

def index(request):
    # 原始数据
    rows = (('apollo', 'male', '164.jpeg'), ('apollo', 'male', ''))
    # 表头
    names = 'username gender pic'.split()
    # URL公共部分
    fs_url = 'http://www.baidu.com/'

    # 新数据列表
    L = []
    for e in rows:
        L1 = list(e)
        pic = e[2]
        if pic == '':
            L1[2] = "%suser_pic/default.jpg" % (fs_url)
        else:
            L1[2] = "%suser_pic/small_%s" % (fs_url, pic)
        L.append(L1)
    print L
    # 用zip组合列表套字典
    """
    [{'username': 'apollo', 'gender': 'male', 'pic': 'http://www.baidu.com/user_pic/small_164.jpeg'},
    {'username': 'apollo', 'gender': 'male', 'pic': 'http://www.baidu.com/user_pic/default.jpg'}]
    """
    data = [dict(zip(names, d)) for d in L]
    print data
    # 对上面结果Json序列化
    """
    [{"username": "apollo", "gender": "male", "pic": "http://www.baidu.com/user_pic/small_164.jpeg"},
     {"username": "apollo", "gender": "male", "pic": "http://www.baidu.com/user_pic/default.jpg"}]
     """
    info = json.dumps(data, ensure_ascii=False)
    print info
    # 组合返回结果,返给前端
    """
    response = {
            "errcode": 0,
            "errmsg": "获取用户列表成功",
            "readLog":[{"username": "apollo", "gender": "male", "pic": "http://www.baidu.com/user_pic/small_164.jpeg"},
                       {"username": "apollo", "gender": "male", "pic": "http://www.baidu.com/user_pic/default.jpg"}]
            }
    """
    s = """
        {
        "errcode": 0,
        "errmsg": "获取用户列表成功",
        "readLog":%s
        }
        """ % (info)

    print s
    return HttpResponseJsonCORS(request,s)

原文地址:https://www.cnblogs.com/apollo1616/p/10418466.html

时间: 2024-10-11 15:20:37

解决跨域HttpResponseJsonCORS, HttpResponseCORS 返回字典数据的相关文章

SpringSecurity解决跨域问题,在SpringBoot整合SprinSecurity中如何用前后端分离Ajax登录,Ajax登录返回状态200还是近error

先说说SpringSecurity如何实现前后端分离Ajax登录? 今天使用SpringBoot整合SpringSecurity中想使用Ajax替代SpringSecurit的Form表单提交,在这里我们的提交方式还是使用表单提交 http.formLogin().loginProcessingUrl("/authentication/form") loginProcessingUrl方法表示你登录请求的地址,在这里SpringSecurity默认登录页面地址是/login ,填写了u

前端解决跨域问题的8种方案(最新最全)

原文:http://www.cnblogs.com/JChen666/p/3399951.html 1.同源策略如下: URL 说明 是否允许通信 http://www.a.com/a.jshttp://www.a.com/b.js 同一域名下 允许 http://www.a.com/lab/a.jshttp://www.a.com/script/b.js 同一域名下不同文件夹 允许 http://www.a.com:8000/a.jshttp://www.a.com/b.js 同一域名,不同端

前端解决跨域问题的8种方案(最新最全)(转)

1.同源策略如下: URL说明是否允许通信 http://www.a.com/a.jshttp://www.a.com/b.js同一域名下允许 http://www.a.com/lab/a.jshttp://www.a.com/script/b.js同一域名下不同文件夹允许 http://www.a.com:8000/a.jshttp://www.a.com/b.js同一域名,不同端口不允许 http://www.a.com/a.jshttps://www.a.com/b.js同一域名,不同协议

HTML5解决跨域问题

HTML5解决跨域问题 由于浏览器的同源策略,网络连接的跨域访问是不被允许的,XHR对象不能直接与非同源的网站处理数据交互.而同源指的是什么呢?同源的范畴包括:规则(协议),主机号(域名.ip等),端口号. 但是随着开放,共享平台的流行,跨域访问的需求愈加强烈.目前最常用的跨域方案是动态加入script标签,这多少有点hack的意味,跨域访问似乎一直没有什么安全且光明正大的办法. 终于,HTML5提供的XMLHttpRequest Level2实现了跨域访问以及其他的一些新功能.下面我们会详细讨

Ajax 跨域请求 jsonp获取json数据

遇到Ajax的跨域请求出问题 找了中解决办法如下: 参考内容:http://justcoding.iteye.com/blog/1366102 由于受到浏览器的限制,该方法不允许跨域通信.如果尝试从不同的域请求数据,会出现安全错误.如果能控制数 据驻留的远程服务器并且每个请求都前往同一域,就可以避免这些安全错误.但是,如果仅停留在自己的服务器上,Web 应用程序还有什么用处呢?如果需要从多个第三方服务器收集数据时,又该怎么办? 理解同源策略 同源策略阻止从一个域上加载的脚本获取或操作另一个域上的

Ajax 是什么?Ajax 的交互模型?同步和异步的区别?如何解决跨域问题

Ajax 是什么: 1. 通过异步模式,提升了用户体验 2. 优化了浏览器和服务器之间的传输,减少不必要的数据往返,减少了带宽占用 3. Ajax 在客户端运行,承担了一部分本来由服务器承担的工作,减少了大用户量下的服务器负载. Ajax 的最大的特点: 1. Ajax可以实现动态不刷新(局部刷新) 2. readyState 属性 状态 有5个可取值: 0 = 未初始化,1 = 启动, 2 = 发送,3 = 接收,4 = 完成 Ajax 同步和异步的区别: 1. 同步:提交请求 -> 等待服务

前端开发如何独立解决跨域问题

背景 跨域是由浏览器同源策略引起的,是指页面请求的接口地址,必须与页面url地址处于同域上(即域名,端口,协议相同).这是为了防止某域名下的接口被其他域名下的网页非法调用,是浏览器对JavaScript施加的安全限制. 这个措施出发点是好的,但在项目开发的过程中,常常给前端开发者带来麻烦. 由于页面开发中,静态资源是放在本地电脑上的,访问这些资源通常通过IP方式(127.0.0.1)或者localhosts来访问,与线上服务器所在域名不符,不能顺利进行接口调用. 解决跨域问题常用的解决方案有两个

解决跨域访问

解决跨域访问的方法 1.用响应头 response.setHeader("Access-Control-Allow-Origin","*");//允许哪些服务器访问 response.setHeader("Access-Control-Allow-Methods","GET POST");//允许的提交方式 2.使用代理 3.JSONP 原理:通过JavaScript标签来访问服务器,并接受服务器返回的数据来实现跨域访问 js

学习 jsonp 解决跨域

转载自http://www.cnblogs.com/qyf404/p/3868611.html 1.起因 js脚本做ajax异步调用的时候,直接请求普通文件存在跨域无权限访问的问题,不管你是静态页面.动态网页.web服务,只要是跨域请求,都无法成功: 如果上句话没明白,我们直接看例子.有两个一模一样的项目,一个webApp01,一个webApp02,分别在两个tomcat里启动,一个端口是8080,一个端口是9080.即两个访问地址是 http://localhost:8080/webApp01