最近做前端的工作比较多,经常会遇到一些自己不太明白的问题,非常的懵逼。
比如做一个简单的ajax异步提交会出现两次请求的问题,也是最近遇见比较奇怪的问题。
经过排查之后发现两次出现两次请求的原因可能是:
1.引入了两个同样的js,比如引入了两个同样的jquery插件
2.页面存在form表单,点击提交按钮之后又执行了form.submit(),这个form本身就会提交一次。
3.跨域请求,这个问题就比较深入一点了,js跨域的时候本身会发送两次请求,第一次是预查请求(option),是为了查询是否支持跨域,第二次才是真正的数据请求。解决这个问题,首先后端要有允许跨域请求的处理,前端的header要加入application/x-www-form-urlencoded, multipart/form-data 或 text/plain中的一种,就可以解决了。
1 | header('Access-Control-Allow-Origin: *'); |