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 ...
随机推荐
- selenium定位元素不稳定的解决方式
1 显示的进行时间上的等待 2 能够查到元素的时候可以使用js注入,单击 element = driver.find_element(*loc) driver.execute_script(" ...
- [Swift] 在 OC 工程中,创建和使用 Swift
1.我们创建了一个 Objective-C 的工程,叫做 playGround. 2.首先,我们需要在 工程的 Build Settings,找到 如中所示的项目,并将 Defines Module ...
- 使用Libusb测试USB device
一. 先准备好测试工具 -- Libusb: 在Linux中使用的话: 首先从 http://www.libusb.org/官网中下载libusb 然后解压之后./configure --> m ...
- 雪花算法-Java分布式系统自增id
1.雪花算法的用途 分布式系统中ID生成方案,比较简单的是UUID(Universally Unique Identifier,通用唯一识别码),但是其存在两个明显的弊端: 一.UUID是128位的, ...
- Jquery 简单实现demo
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- mybatis-plus 时间查询
QueryWrapper userquery= new QueryWrapper<>(); user.and(true,wrapper -> wrapper.ge("CRE ...
- Day23:个人小结的撰写&&对coderunner的熟悉
今日完成的任务: 1.完成个人小结的撰写 2.阅读Moodle文档,了解Moodle平台以及Moodle出题格式 明日计划: 1.撰写总报告中的结论 2.将插件安装完成 每日小结: 为了研究题库,特 ...
- Ubuntu20.04修改环境变量失误导致开机循环——解决方法以及保存profile
gedit /etc/profile配置Ubuntu环境变量时出现失误导致开机时输入密码后重复开机无法进入图画界面 解决方法:ctrl+alt+(F1~F6),我的是ctrl+alt+F2进入界面 输 ...
- AWT+Swing实现百度图像识别
1准备 1.1在百度智能云中创建自己的应用,得到API Key和Secret Key 1.2maven导入SDK依赖 2源码 import java.net.URLEncoder; /** * 植物识 ...
- 报错解决OSError: /lib64/libm.so.6: version `GLIBC_2.27' not found
使用pyg报错如下: 1 Traceback (most recent call last): 2 File "main.py", line 18, in <module&g ...