引用:JackJiang 发表于 2019-02-20 14:18 好的,谢谢 |
引用:IM、你好 发表于 2019-02-20 09:40 第一:ajax的跨域问题是浏览器厂商给的限制,谁也改变不了,这一块其实不复杂,只是你了解的太少,学习欲望也比较低,所以比较纠结。 第二:我没用过nodejs实现http接口,但我的RainbowChat-Web产品中,用tomcat实现http接口解决跨域问题时,参考这个帖子就能解决:https://www.cnblogs.com/zhaoyanhaoBlog/p/9370830.html 其实,总结一下就是,用JSONP技术,在Ajax调用时可以彻底解决跨域问题,而且不需要服务端、或者请求头做单独设置,因为JSONP技术原理就是请求js文件,这个没有任何的限制。 之所以要设置服务端或者请求头里设置,是因为要解决文件上传这个跨域问题,因为文件上传的跨域问题没有办法用JSONP了(关于文件上传免刷新和跨域问题,话题就比较大了,你有兴趣可以系统地了解学习)。 所以总之,最佳实践就是用JSONP,文件上传的跨域就去扩服务端跨域配置。 |
引用:JackJiang 发表于 2019-02-19 18:48 对的, 第一,不明白为什么客户端Ajax调用Java代码接口会出现跨域,maven项目里面的HTML调用都没跨域问题 第二,nodejs前后端分离,如果ip端口都不一样,如果出现跨域问题,通过设置请求头能不能解决掉 |
我看明白了,你的意思是,调用你java这边的接口,出现的跨域问题你现在没找到解决办法? |
引用:IM、你好 发表于 2019-02-19 12:24 画个图,把你部署情况描述情况,你写的文章逻辑太混乱了,看不明白了 |
我才注意到你帖子里的这个“https://rbchat_pro.52im.net:7083/rainbowchat_pro/rest_post”,你连我部署在线上的这个地址干什么呢,这个线上服务并不支持web的跨域调用,服务端是我的,你配置不了。 你用你自已的服务端配置一下tomcat就好了,跨域这方面的资料百度一下就一大把。如果还不知道,你具体配置的时候,蒙逼的话,跟我说,我直接截代码你看吧。。 跨域这么经典的问题,解决都这么费劲的话,不应该啊 |
引用:JackJiang 发表于 2019-02-18 19:03 我是将MObileIMSDK-Web的demo运行,端口3000 写了一个简单的nodejs服务端接口,端口8088 web项目接口,端口8085 在demo调用demo自己的接口不同(设置请求头,jsonp都不行) 在demo调用8088端口的接口不通(设置请求头可行) 在demo调用8085端口的接口不通 |
IP+端口都要一样才不会发生跨域问题。这一块你完全可以百度系统地学习一下,tomcat或nodejs可以在服务端配置解决的,另外,你了解一下JSONP这个技术,也是用来解决跨域问题的。 我看你的回答,看的出来你对这个问题的了解基本没有,系统地学习一下吧,搞web应用不懂这个不行。况且不是什么复杂的事情 |
以上问题跟代码无关。 你听说过经典的浏览器“跨域”问题吗?如果没有的话,你系统的学习一下,然后就知道怎么解决了。 如果还是不知道怎么做,继续在贴子里讨论。 |