Java域名请求
这两天重新看了一下刚进实验室时用python写的一个小程序,当时用flask包装成了一个web服务器,给另一个Java项目提供服务,服务的域名就是localhost。把java项目部署到服务器上的时候,在服务器上也启动了python的程序,域名和接口配置也是正确的,但是在前端发送请求之后,python服务一直没办法接收到请求。后来误打误撞在本地启动了python的服务,用服务器上部署的web发送同样的请求,居然能够接收到请求了,而且是本地启动的python服务接收到了请求。
仔细检查了一下发现,在发送请求的javascript中直接定义了python服务的域名(localhost)和端口,而js是通过本地的浏览器解析的,在发送请求的时候也就直接请求了本地的localhost而不是服务器的localhost,导致请求没办法发送到服务器上。这也解释了为什么在用Java进行web开发的时候,如果要访问别的域名,都是通过Java提供的HttpServlet来进行数据的包装和请求的发送,避免了直接通过js来发送跨域的请求。