解决跨域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)
解决跨域HttpResponseJsonCORS, HttpResponseCORS 返回字典数据的更多相关文章
- 【C#】WebService接受跨域请求及返回json数据
问题概述 通过Web Service发布服务供客户端调用是一种非常简单.方便.快速的手段,并且服务发布后会有一个服务说明页面,直观明了,如图: 一般情况下,在web页面中的JavaScript中调用W ...
- 前端笔记之服务器&Ajax(下)数据请求&解决跨域&三级联动&session&堆栈
一.请求后端的JSON数据 JSON是前后端通信的交互格式,JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式. JSON是互联网各个后台与 ...
- PhoneGap开发跨平台移动APP - 解决跨域资源共享
解决跨域资源共享 一.WebApi解决跨域资源共享. 开发中选择WebApi来作为服务端的数据接口,由于使用PhoneGap,就需要通过js来获取远程远程数据服务器的数据,由于同源策略的限制,这就涉及 ...
- Ajax 是什么?Ajax 的交互模型?同步和异步的区别?如何解决跨域问题?以及 HTTP状态码
一.Ajax 是什么: 1. 通过异步模式,提升了用户体验 2. 优化了浏览器和服务器之间的传输,减少不必要的数据往返,减少了带宽占用 3. Ajax 在客户端运行,承担了一部分本来由服务器承担的工作 ...
- AJAX 跨域请求 - JSONP获取JSON数据
Asynchronous JavaScript and XML (Ajax ) 是驱动新一代 Web 站点(流行术语为 Web 2.0 站点)的关键技术.Ajax 允许在不干扰 Web 应用程序的显示 ...
- ajax 、ajax的交互模型、如何解决跨域问题
1.ajax是什么? — AJAX全称为“AsynchronousJavaScript and XML”(异步JavaScript和XML),是一种创建交互式网页应用的网页开发技术. — 不是一种新技 ...
- js中ajax如何解决跨域请求
js中ajax如何解决跨域请求,在讲这个问题之前先解释几个名词 1.跨域请求 所有的浏览器都是同源策略,这个策略能保证页面脚本资源和cookie安全 ,浏览器隔离了来自不同源的请求,防上跨域不安全的操 ...
- HTML5解决跨域问题
HTML5解决跨域问题 由于浏览器的同源策略,网络连接的跨域访问是不被允许的,XHR对象不能直接与非同源的网站处理数据交互.而同源指的是什么呢?同源的范畴包括:规则(协议),主机号(域名.ip等),端 ...
- 用jQuery与JSONP轻松解决跨域访问的问题【转】
原文地址:http://www.jb51.net/article/46463.htm 好在,有jquery帮忙,跨域问题似乎没那么难缠了.这次也借此机会对跨域问题来给刨根问底,结合实际的开发项目,查阅 ...
随机推荐
- linux下Samba服务配置
SMB是基于客户机/服务器型的协议,因而一台Samba服务器既可以充当文件共享服务器,也可以充当一个Samba的客户端,例如,一台在Linux 下已经架设好的Samba服务器,windows客户端就可 ...
- 1.GCC编译过程
一. GCC编译过程 gcc -E hello.c -o hello.i // 预处理.将代码中包含的头文件和宏进行替换 gcc -S hello.i -o hello.s // 汇编.将当前文本转换 ...
- Java的ThreadContext类加载器的实现
疑惑 以前在看源码的时候,总是会遇到框架里的代码使用Thread.currentThread.getContextClassLoader()获取当前线程的Context类加载器,通过这个Context ...
- jquery 操作input radio 单选框
1.jquery选中单选框 2.jquery 取消单选框 3.判断是否选中 4.设置不可编辑
- HTML5自定义属性之data-index
#使用jquery获取data-index的值 jquery 的版本最好高一些 #html <div id = 'div'><span data-field='demo'>&l ...
- linux学习笔记15--命令locater、slocate
locate 让使用者可以很快速的搜寻档案系统内是否有指定的档案.其方法是先建立一个包括系统内所有档案名称及路径的数据库,之后当寻找时就只需查询这个数据库,而不必实际深入档案系统之中了.在一般的 di ...
- linux进程D状态_转
Linux进程状态:S (TASK_INTERRUPTIBLE),可中断的睡眠状态. 处于这个状态的进程因为等待某某事件的发生(比如等待socket连接.等待信号量),而被挂起.这些进程的task_s ...
- 加密web.config中的邮件配置mailSettings
加密: 在命令提示符下键入: aspnet_regiis -pef connectionStrings 要加密的web.config完整路经 演示样例:C:\Program Files (x86)\M ...
- git 入门一(初识)
分布式版本控制系统 & 集中式版本控制系统 分布式版本控制系统( Distributed Version Control System)在这类系统中,像 Git,Mercurial,Baz ...
- 【BZOJ】3392: [Usaco2005 Feb]Part Acquisition 交易(spfa)
http://www.lydsy.com/JudgeOnline/problem.php?id=3392 同1674 #include <cstdio> #include <cstr ...