之前做web端的银联支付,需要用post方法给银联提交一个包含了相关信息的表单,因为前后台完全分离的,前端无法加密签名这些信息,所以就让后台处理我再请求这些需要被提交的数据,然后我前端把数据发送给银联。得到数据后我开始想的是用ajax直接post这些数据给银联,毫无疑问出现跨域问题,然后我用表单提交成功,所以我想知道当需要传送的数据格式相同的情况下都用post请求方法,form和ajax到底有哪些区别呢??很疑问,求解答!!谢谢各位前辈!!!
之前做web端的银联支付,需要用post方法给银联提交一个包含了相关信息的表单,因为前后台完全分离的,前端无法加密签名这些信息,所以就让后台处理我再请求这些需要被提交的数据,然后我前端把数据发送给银联。得到数据后我开始想的是用ajax直接post这些数据给银联,毫无疑问出现跨域问题,然后我用表单提交成功,所以我想知道当需要传送的数据格式相同的情况下都用post请求方法,form和ajax到底有哪些区别呢??很疑问,求解答!!谢谢各位前辈!!!
浏览器打开开发者工具就能看到详细的提交的数据。
ajax和form基本是一致的,只是需要注意jq的ajax可以有XMLHttpRequest发起的(没有打开跨域选项时),XMLHttpRequest发起的ajax是无法跨域的(浏览器级的禁止)。
如果把form的target设定成一个iframe的话,两者基本上没啥区别,都不会刷新页面
但是,在跨域的时候还是有些不一样的地方,比如说,在设置CORS头的情况下,xhr level2中,是可以获取到post的返回值的,但是如果直接表单提交的话,如果跨了主域,返回的内容无论如何都获取不到。
10 回答11.2k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
form在提交数据之后会刷新页面,并且当是post的时候再点击刷新的时候浏览器或提示是否再次提交。
Ajax提交则不会在点击提交之后自动刷新页面。
后端关于两者的数据接收并无差别。