为什么 post 请求会出现两次请求?

跨域请求就会出源现这样的问题。

由于CORS(cross origin resource share)规范的存在,浏览器会首先发送知一次options嗅探,同时header带上origin,判断是否道有跨域请求权限,服务器响应access control allow origin的值,供浏览器与origin匹配,如果匹配则正式发送post请求。

所有跨域的js在提交post请求的时候,如果服务端设置了可跨域访问

public static function setCrossDomain()

{

header(‘Access-Control-Allow-Origin: *‘);

header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept");

header(‘Access-Control-Allow-Methods: GET, POST, PUT‘);

}

都会默认发送两次请求,第一次是预检请求,查询是否支持跨域,第二次才是真正的post提交。

JS中出现这个现象原因在于你发送了一个非简单请求。

简单请求与非简单请求:

* 请求方式:HEAD,GET,POST

* 请求头信息:

Accept

Accept-Language

Content-Language

Last-Event-ID

Content-Type 对应的值是以下三个中的任意一个

application/x-www-form-urlencoded

multipart/form-data

text/plain

只有同时满足以上两个条件时,才是简单请求,否则为非简单请求

解决方法:

由上面定义可以看出,把你的post提交改成get提交,就不会两次请求,或者将post的header改成application/x-www-form-urlencoded, multipart/form-data 或 text/plain中的一种

原文:https://www.cnblogs.com/YangJonathan/p/12781620.html

html post 发送两次,JS发送跨域Post请求出现两次请求的解决办法相关推荐

  1. 桥接路由器总是掉线_一个网络连接了两个路由器,为什么总掉线?教你2个解决办法!...

    一个网络连接了两个路由器,为什么总掉线?教你2个解决办法! 两个路由器用一个网,总掉线的原因可能出在IP地址冲突,或者副路由器级联问题上.路由器级联掉线最常见的原因是IP地址冲突.需要知道的是,路由器 ...

  2. JS发送跨域Post请求出现两次请求的解决办法

    原文地址: http://www.cnblogs.com/JimmyBright/p/7681097.html 所有跨域的js在提交post请求的时候,如果服务端设置了可跨域访问 1 public s ...

  3. 百度在线编辑器 显示html,UEditor百度编辑器中JS/html代码(script标签)被过滤的解决办法...

    作为一名程序员,在文章中经常会插入各种代码,大部分代码都不会发生问题,但div和script标签是经常会被使用到的. 而在之前的文章编写过程中,插入JS代码后,第一次文章会显示正常,而之后在后台编辑器 ...

  4. freemarker中js里面取字符串,换行导致报错的解决办法

    问题原因 原因在于直接在js中取的变量并复制给var变量. var data = '${content}'; 于是就变成这样. 解决办法 var data = '${content?js_string ...

  5. JS脚本错误80020101以及FCKedito未定义的一种解决办法

    在delphi中使用FCKeditor,有时出现JS脚本错误80020101,以及FCKedito未定义,有时又正常. 解决办法判断doc.readyState if doc.readyState=' ...

  6. JSONP跨域请求数据报错 “Unexpected token :”的解决办法

    原文  http://www.cnphp6.com/archives/65409 Jquery使用ajax方法实现jsonp跨域请求数据的时候报错 "Uncaught SyntaxError ...

  7. win2003辅助域服务器相关几个错误日志的解决办法

    1.域助域上做了DNS后,提示:浏览器无法更新服务状态位,数据有错误,错误代码是8007 关闭computer browser基本就行了, 有人说还要关server,它负责共享之类的,如果关了,就不能 ...

  8. 加入域时“找不到网络路径”的解决办法

    很多时候在加入域时报"找不到网络路径"的错误,一般按这样的思路来解决 1.检查服务computer brower,remote procedure(RPC),tcp/ip netb ...

  9. 此工作站和主域间的信任关系失败 原因及解决办法

    原因:  域控服务器没有客户端 的主机名(可能删除了,或重装系统后没添加到域控) 处理: 在域控上确认 客户端 主机名是否被禁用,如已禁用,启动即可. 转载于:https://www.cnblogs. ...

最新文章

  1. log4j的使用方法
  2. Vivado2018如何与Notepad++关联?
  3. 在java中开发图形用户_2016年计算机二级考试《JAVA》习题:编写图形用户界面
  4. Fibonacci数列 矩阵快速幂
  5. Linux的Nginx六:源码|安装
  6. graphql入门_GraphQL入门指南
  7. Spring Security Oauth2 (一) 整体流程介绍
  8. 2015 EC L - Multiplication Table
  9. 电力行业巡检对讲通信系统
  10. 【comsol快速入门】
  11. 移动前端开发和 Web 前端开发的区别是什么
  12. Python爬取58同城租房数据,完美解决字体加密
  13. 【愚人节专场】Java实现定时发送小情话
  14. c语言完美素数反思,《素数和合数》优秀教学反思
  15. c语言中:=和==的区别是什么?
  16. 大气简洁手绘风商务计划书PPT模板
  17. dcn网络与公网_电信运营商DCN网络的演变与规划方法(The evolution and plan method of DCN)...
  18. 蓝宇风:高强度加密狗
  19. matlab实现多目标优化求解-NSGA-II 算法
  20. ArcGIS案例学习笔记4_2_城乡规划容积率计算和建筑景观三维动画

热门文章

  1. Python基础学习!基本元素,数字,字符串以及变量
  2. 聊聊找工作中的项目经验问题(推荐系统和智能问答)
  3. ​你知道计算机视觉与机器视觉区别何在?
  4. 【OpenCV 4开发详解】边缘检测原理
  5. 《数据安全管理办法(征求意见稿)》发布 为个人数据安全加把锁
  6. Spring Cloud Alibaba发布第二个版本,Spring 发来贺电
  7. 1.2 CentOS6 命令行配置静态IP地址步骤
  8. 从USB闪存驱动器启动 Hiren的BootCD --制作U盘启动盘
  9. smo算法matlab实现
  10. iOS开发中的 地区转经纬 经纬度转地区