Dai Chong's blog

最近做前端的工作比较多,经常会遇到一些自己不太明白的问题,非常的懵逼。
比如做一个简单的ajax异步提交会出现两次请求的问题,也是最近遇见比较奇怪的问题。

经过排查之后发现两次出现两次请求的原因可能是:

1.引入了两个同样的js,比如引入了两个同样的jquery插件



2.页面存在form表单,点击提交按钮之后又执行了form.submit(),这个form本身就会提交一次。


3.跨域请求,这个问题就比较深入一点了,js跨域的时候本身会发送两次请求,第一次是预查请求(option),是为了查询是否支持跨域,第二次才是真正的数据请求。解决这个问题,首先后端要有允许跨域请求的处理,前端的header要加入application/x-www-form-urlencoded, multipart/form-data 或 text/plain中的一种,就可以解决了。


后端跨域处理
1
2
3
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');


 评论