域名、端口只要有一个不同就会出现跨域的问题。
以下把域名端口不同的服务器统称为跨域服务器。代码用java语言解释。
我也是看别人博客才知道可以通过调用跨域服务器解决
因为js文件是可以跨域的,就像我们可以引用其他平台的jq文件
同时发现一个知识盲点:原来src引用js文件不是必须是js拓展名的文件。比如这样跨域服务器地址 xxxxx/testjs,get请求内容写
response.getWrite.write("function biubiubiu(){alert('biubiubiu is doing ...');}");前端src引用这个地址,就可以使用这个函数。
那么我想,既然我可以引用这个函数,是不是可以在跨域服务器里把我需要跨域访问的数据当做返回值放到这个函数里,下面是代码测试:
实现功能:跨域返回一个字符串给前端,我用两个编辑器IDEA 和webstorm,IDEA当做跨域服务器,webstorm也能启动一个软件自带的
java代码如下:get请求返回(注意拼接的引号)
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Writer writer=response.getWriter();
String str="战意 化为青龙翱翔吧";
writer.write("function biubiubiu(){return '"+str+"'}");
}
前端代码:
<script>
$("#box").click(function () {
var s=document.createElement("script");
s.src="http://localhost:8080/tt2";
s.onload=function(){
console.log(100);
function fun(){
console.log(biubiubiu());
}
document.getElementById("box2").addEventListener("click",fun);
};
document.body.appendChild(s);
});
</script>
这样前端就能能输出后台返回的字符串数据了,当然,数据可以使任何类型,也可以是从数据库中获取的,剩下需要做的就是怎么组织代码格式了