今天在做『理工的』这个玩意儿的时候要用到Ajax

为什么会用到Ajax呢?因为这是一个『实名制』社区,每个用户要输入自己的学号和密码,然后用后台模拟登陆到教务系统,抓取到名字作为用户名。

就像这样

在用户点击『获取』按钮的时候,会调用JS,使用Ajax获取数据。获取的文件为test.php,test.php文件里面包含了模拟登陆教务系统的函数,在调用它的时候会返回获取到的名字和班级。

问题来了,用来获取信息的test.php文件在SAE的服务器上,我很早之前就已经写好了,而网站又在另外的服务器上,Ajax不能调用远程的数据,即『跨域调用』

解决这个问题有两个方法,一个是把test.php文件移植到网站服务器下,但是这并没有解决『Ajax跨域』这个问题,并且test.php用到了很多Sae封装好的函数,如果脱离Sae环境就无法使用了,所以移植起来比较麻烦。

于是我觉得用第二个办法,我称之为『搭桥法』(BridgeSend),我在本地服务器建立test1.php,在test1.php里面用file_get_contents()来获取远程Sae服务器里面test.php返回的内容,然后再在本地的页面Ajax这个本地的test1.php。

 

这样一来,就完美解决了Ajax跨域的问题,唯一遗憾的是可能速度稍稍有些降低。


我的微信公众号~