当前位置:Gxlcms > PHP教程 > javascript-Ajax跨域请求和表单提交事件

javascript-Ajax跨域请求和表单提交事件

时间:2021-07-01 10:21:17 帮助过:21人阅读

假设现在有两家网站,A和B,他们面向同一用户(C)提供服务。
现在,C登录A公司提供的网页,在登录表单中输入用户名和密码。
在输入用户名的时候,浏览器异步请求数据,表单下方实时显示可用用户名,该数据是B网站服务器返回的(A并没有B网站服务器的控制权)。
然后输入完成以后,按回车,触发表单提交事件。提交的时候,用户名发送到A网站,密码本地哈希后发送到B网站。

以上怎么实现,不需要讲的太具体。

回复内容:

假设现在有两家网站,A和B,他们面向同一用户(C)提供服务。
现在,C登录A公司提供的网页,在登录表单中输入用户名和密码。
在输入用户名的时候,浏览器异步请求数据,表单下方实时显示可用用户名,该数据是B网站服务器返回的(A并没有B网站服务器的控制权)。
然后输入完成以后,按回车,触发表单提交事件。提交的时候,用户名发送到A网站,密码本地哈希后发送到B网站。

以上怎么实现,不需要讲的太具体。

可以使用如下两种做法:

  1. 使用CORS (Cross-origin resource sharing)
    需要B网站请求返回的头部添加CORS相关Header,其中Access-Control-Allow-Origin中添加A网站的域。具体跨域信息参考:http://blog.csdn.net/qgw_2000/article/details/8882051

  2. 通过A网站代理发送请求到B网站
    请求都发给A网站,针对需要请求B网站的请求进行转发,在nginx中,简单通过proxy_pass就可以做到。

这不就是xss嘛,B服务器设定一下,接受来自A域名的跨域请求就可以了。

如果懂服务器配置建议采用二楼的第二种方法,如果不懂,用php的curl同样可以实现,前端表单异步提交都给A站,A站通过curl访问B站的接口(或者说模拟提交表单)来获取你想要的数据

人气教程排行