Ajax JavaScript传参-javascript加载本地文件
get请求需要拼接到url里面
post请求,需要放到send方法里面,后端取值的时候,Ajax用JavaScript传输跟用postman传输,取值方式有些区别,这里做一下详细记录
传参格式{'id':1}
request.body取值,得到的结果如下:
b'{\r\n "name":"olive",\r\n "phone":18503234424,\r\n "home":"\xe6\xb1\x9f\xe8\x8b\x8f\xe7\x9c\x81"\r\n}' <class 'bytes'>
ajax post body params b'{"name":"kevin","phone":"13689897878","home":"\xe5\x90\x89\xe6\x9e\x97\xe7\x9c\x81"}' <class 'bytes'>
request.data取值,postman 和ajax 反馈结果如下:
ajax <QueryDict: {'{"name":"simon","phone":"15646465585","home":"安徽省"}': ['']}> <class 'django.http.request.QueryDict'>
postman {'data': {'name': 'oven', 'phone': 18503004424, 'home': '江苏省'}} <class 'dict'>
后端是用APIView,post取值方式,request.data/request.body
当用request.body取值的时候,不论是postman还是Ajax都是byte格式,拿到byte之后,json.loads就能得到对象,可以直接拿到数据。
用request.data取值的时候,Ajax传过来的就是querydict,postman传过来的就是dict对象。这个还挺奇怪的。可能是request里面封装了什么东西导致的这样的区别
传参格式 data={‘id’:1}
当传参格式发生变化时,request.data取值,ajax传递的querydict格式发生变化,如下
<QueryDict: {'data': ['{"name":"simon","phone":"15646465585","home":"安徽省"}']}> <class 'django.http.request.QueryDict'>
request.data.get("data") 拿到的是str需要序列化转成dict对象
javascript加载本地文件
function readTextFile(file, callback) {
// file是本地文件路径
let rawFile = new XMLHttpRequest();
rawFile.overrideMimeType("application/json");
rawFile.open("GET", file, true);
rawFile.responseType = 'json'; //在onreadystatechange之前,设置返回值类型,
// 就会自动解析为json数据格式
rawFile.onreadystatechange = function () {
if (rawFile.readyState === 4 && rawFile.status === 200) {
let response_data = rawFile.response;
console.log("lmj-debug>>>", response_data);
callback(response_data);
}
};
rawFile.send(null);
}
Ajax JavaScript传参-javascript加载本地文件的更多相关文章
- Jquery的load加载本地文件出现跨域错误的解决方案
如果用原生的AJAX是加载本地文件就不会出现错误.当然,这个jquery的load放在服务器上通过http加载还是支持的.也有例外比如在firefox和ie浏览器使用$.ajax加载本地html或tx ...
- worker中加载本地文件报错的解决方案
如果在一个swf的主线程中加载文件时,报安全沙箱的错误, 网上有诸多的解决方案.但是如果在一个worker中加载本地文件报类似如下的错误: *** 安全沙箱冲突 *** SecurityError: ...
- webView 加载本地文件 - html/htm pdf docx tx
- (void)viewDidLoad { [super viewDidLoad]; [self setupUI]; NSString *path = [[NSBundle mainBundle] p ...
- Google浏览器如何加载本地文件
Chrome浏览器加载本地文件 一般来说,为了安全起见,浏览器是不能通过load方法来加载本地文件的,load方法只能加载远程服务器上的文件. 在浏览器默认的情况下,试图加载一个本地文件,会出现交叉域 ...
- 在chrome 怎么通过ajax请求加载本地文件
在chrome下面用Jquery 的load方法加载本地的html文件时会报错 我百度了一下是因为 谷歌浏览器内核为了安全机制,不允许这样方式访问其他页面,但是可以通过加 --enable-file- ...
- BulkLoad加载本地文件到HBase表
BulkLoad加载文件到HBase表 1.功能 将本地数据导入到HBase中 2.原理 BulkLoad会将tsv/csv格式的文件编程hfile文件,然后再进行数据的导入,这样可以避免大量数据导入 ...
- 解决WebView加载本地文件乱码
一.问题描述 这几天现场反馈一些问题,主要是文件浏览有部分文件显示乱码,像这样: 而文件本身又是用WebView加载的,出现有的文件正常有的文件不正常. 二.问题解决 webView 加载主要有:lo ...
- WP8.1程序开发中,如何加载本地文件资源或安装在程序包中的资源。
Web 要访问来自 Web 的文件,你可以使用标准的绝对 HTTP URI: <img src="http://www.contoso.com/images/logo.png" ...
- Jquery的load加载本地文件出现跨域错误的解决方案"Access to XMLHttpRequest at 'file:///android_asset/web/graph.json' from(Day_46)
博主是通过JS调用本地的一个json文件赋值给变量出现的跨域错误, 网上有大量文章,五花八门的,但总归,一般性此问题基本可通过这三种方法解决: https://blog.csdn.net/qq_418 ...
- ios中UIWebview中加载本地文件
[super viewDidLoad]; webview=[[UIWebView alloc] initWithFrame:self.view.bounds]; [self.view addSubvi ...
随机推荐
- Sql Sugar 拾遗
SqlSugar 拾遗 更新操作 //UpdateColumns:只更新某些列 db.Updateable(entity).UpdateColumns(it => new { it.Name } ...
- Linux 软件包 管理
rpm.deb包管理操作 yum.apt/apt-get线上管理操作 查找软件包 $ yum search [name|info] $ apt-cache search [name|info] 安装软 ...
- Linux下aria2详细配置,以及接管浏览器下载项
本篇是在Deepin的环境下操作,大概可适用与Ubuntu和Debian,其他系的Linux不确定, 首先,我们安装aria2,使用命令行(在桌面右键可以打开)输入sudo apt install a ...
- GDB调用
编译时需要加-g参数: gcc -g -o test main.c 使用GDB执行:gdb test -GDB命令
- css样式 div垂直水平居中对齐
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- qt vnc 远程左桌面
设备端启动服务器 ./testqt -qws -display VNC:0 客服端启动监控端 VNC Viewer 4
- 监听 view 初始化时
new ViewTreeObserverRegister().observe(getContentView(), new ViewTreeObserver.OnGlobalLayoutListener ...
- POWER BI - 根据条件,改变数值的颜色Conditional formatting
在visual块,右键Column选择Conditional formatting 举例,比如difference > 0 显示红色,否则<0显示绿色 如何根据 measure 写特定条件 ...
- astrocut:切割fitsfile
from astrocut import fits_cut from astropy.io import fits from astropy.coordinates import SkyCoord i ...
- Npoi.Mapper 日期转换
问题:Excel文档里有一些列是日期类型的数据,使用Mapper默认的转换,发现生成的实体,在有的系统环境下能正常转换,但是在有的系统环境下,转换的日期出现中文. 猜想是Excel文档里,日期列的单元 ...