今天使用socket.io写demo(在sublime中)得时候遇到了一个问题,在浏览器的报错是这样的:
Failed to load http://localhost:8001/socket.io/?EIO=3&transport=polling&t=MAT-w-6: The 'Access-Control-Allow-Origin' header has a value 'null' that is not equal to the supplied origin. Origin 'null' is therefore not allowed access.
我也是很是纳闷到底怎么回事,我仔细看了一下报错信息,发现是跨域请求的问题。
因为我是直接打开的html文件,URL的前缀是“file:///”,现在当我需要去请求一个http域的服务当然会告诉你这是错误的不合法的。
所以我使用Hbuilder打开此项目,因为Hbuilder会自动的将项目放在http域中,请求类似地址:
http://127.0.0.1:8020/chatRoom/index.html
即可访问项目中的文件,这样保证了客户端和服务端在同一个域,所以请求才能成功!