ajax post 请求415\ 400 错误
今天用ajax 向后台发送 post请求时,出现了两个问题:
1, 发送请求后,控制台 返回 Unsupported media type-415(不支持的媒体类型),这时突然想起来,post 请求要设置请求头,于是 写了 xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded.'); 再次发送请求,还是报同样的错误,Unsupported media type-415。查了一下,原来,后端对请求的Content-type 设为了json, Access-Control-Request-Headers: content-type, 这时要把 content-type 设为json . xhr.setRequestHeader('Content-Type', ' application/json');
在设置请求头的时候,还知道了原来第一个参数“Content-Type”, 是不区分大小写的,写成‘content-type’ 也是可以的。当然,设置请求头还要注意以下问题:
1,它必须在open()方法之后,send()方法之前调用,否则会抛错。
2,如果设置多个请求头时,可以多次调用setRequestHeader(),后面的设置并不会覆盖掉前面的设置,而是采用叠加的方式。
3, 两个参数之间用逗号,隔开。 有时我不经意间写成了分号:, 造成错误。
2,改完之后,发送请求,又报错了 ,但这次是400 bad request, 400指的是请求无效(请求有语法问题或者不能满足请求),也就是无法获取到资源, 这主要是后台要求传入的数据和前台我们传入的数据不匹配,后台无法解析数据,进行查询,从而返回数据。但我只传递了一个对象。网上搜了一个解决办法:对我们要传递的数据进行json 序列。
var data = JSON.stringify({
"page": ,
"limit": ,
"shopId":
});
3, 再发送一次请求,终于请求成功。 代码如下:
var xhr = new XMLHttpRequest();
var url ="http://192.168.1.89:8080/server/";
var data = JSON.stringify({
"page": ,
"limit": ,
"shopId": ,
"timeType": ,
}); xhr.open("POST", url );
xhr.setRequestHeader('Content-Type','application/json');
xhr.onload = function(){
console.log(xhr.responseText) // 这里要用xhr.respnseText 获取数据,我经常给函数传一个data参数,获取数据,造成错误
}
xhr.send(data)
ajax post 请求415\ 400 错误的更多相关文章
- ajax请求出现400错误
ajax请求出现400错误,如题.百度了只有两种情况,一个参数错误,二是所谓的参数过长. 因为我传递的base64的图片参数,很长.刚开始以为是这个原因.后来发现不是,原因是参数错误.freemake ...
- http请求报400错误的原因分析
在ajax请求后台数据时有时会报 HTTP 400 错误 - 请求无效 (Bad request);出现这个请求无效报错说明请求没有进入到后台服务里: 原因:1)前端提交数据的字段名称或者是字段类型 ...
- flask ajax发送请求返回400
在flaskWTF使用csrf保护后,一般提交form表单都需要一个隐藏的csrf 这样可以成功提交,但是使用ajax提交时就不能成功提交,会返回400错误,服务器无法理解请求,这样就需要新的方法解决 ...
- Yii 1.1 请求报400错误
Yii的action可以带参数,比如: class PostController extends CController { public function actionCreate($categor ...
- springMVC中使用 RequestBody 及 Ajax POST请求 415 (Unsupported Media Type)
使用POST请求的时候一直报错: Ajax 未设置 contentType 时会报 415 . 后台 RequestBody 承接前台参数,故对参数data的要求为“必传”“JSON”,否则会报40 ...
- @RequestBody发送请求报400错误
参数不使用@RequestBody 在使用Postman进行Post请求时,通常做法是填入key和value的值即可. 参数使用@RequestBody 使用@RequestBody注解时,在发送请求 ...
- IE 浏览器在地址栏输入中文字符,发送get请求报400错误的问题
因为学校有JavaWeb的课程,所以才接触这方面.最近遇到了个小问题. 先看一段很简单的jsp代码例子 <%@ page language="java" import=&qu ...
- springmvc 请求出现400错误(当传入的参数类型是Date时加上下面代码试试)
@InitBinder protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder) t ...
- 解决ajax请求(SpringMVC后台)响应415/400/405错误
解决ajax请求(SpringMVC后台)响应415/400/405错误 后端代码 bean public class user { private String username; private ...
随机推荐
- JOptionPane类提示框的一些常用的方法
JOptionPane类提示框的一些常用的方法 XMLOracleSwing 最近在做swing程序中遇到使用消息提示框的,JOptionPane类其中封装了很多的方法. 很方便的,于是就简单的整理了 ...
- Timer的故事----Jdk源码解读
咱们今天也来说说定时器Timer Timer是什么? Timer n. [电子] 定时器:计时器:计时员 从翻译来看,我们可以知道Timer的本意是,定时定点. 而JDK中Timer类也的确是这个本 ...
- mybatis教程
http://www.yihaomen.com/article/java/302.htm
- python for mysql
# -*- coding: utf-8 -*- '''python coded by written in 2016/8/31 Used for get win os log for each win ...
- HTML5 input placeholder 颜色修改
在开发中遇到的一个小问题,记录下来./*placehodel*/ input:-ms-input-placeholder{color:#a9a9a9;}/* Internet Explorer 10+ ...
- node上截取图片工具 images(node-images)
我们经常会遇到服务器上传的图片进行裁剪或者增加logo等等一些操作,在node平台上该如何实现呢? 看到大家都在使用"gm"这个工具,功能很强大,但是在Windows平台上简直就是 ...
- python学习笔记之迭代器和函数(第三天)
一.collection系列: 1.counter计数器 如果counter(dict)是对字典的一个补充,如果counter(list)则是对列表的补充,初步测试对字典的值进行排序. ####### ...
- asp.net 事件加载顺序
下面是母版页与内容页合并后事件的发生顺序: 母版页控件 Init 事件. 内容控件 Init 事件. 母版页 Init 事件. 内容页 Init 事件. 内容页 Load 事件. 母版页 Load 事 ...
- C#:向exe传值
一.需求:在不同的exe程序中,提示消息框样式一致,内容不同. 二.实现: 1.提示消息框program.cs static class Program { /// <summary> / ...
- Linux下如何查看高CPU占用率线程
转于:http://www.cnblogs.com/lidabo/p/4738113.html 目录(?)[-] proc文件系统 proccpuinfo文件 procstat文件 procpidst ...