前后端分离中遇到的哪些坑

前后端分离中遇到的哪些坑

跨域问题

1.为什么会出现跨域问题?
出于浏览器的同源策略限制。同源策略会阻止一个域的JavaScript脚本和另一个域的内容进行交互,所谓同源(即指同一个域)就是两个页面具备同样的协议(protocol),主机(host)和端口号(port)
2.跨域请求出现错误的条件: 浏览器同源策略 && 请求是ajax类型
3.解决方案:
经过多出查阅,得知使用cors来解决这类问题
CORS方案,就是通过服务器设置响应头来实现跨域 。
这里,前端无需改动,正常发送Ajax请求即可
后端则需改动,这里需要后端增加响应头,或者使用第三方模块cors,我在项目中则使用了第二种解决方案来解决了问题
在这里插入图片描述
在这里插入图片描述
加入后即可解决这类跨域问题

json数据处理问题

数据处理我则引用:

https://wenku.baidu.com/view/e9fbdc39ff4ffe4733687e21af45b307e871f9e6?aggId=526c965101768e9951e79b89680203d8ce2f6ad5&fr=catalogMain

但中途遇到 js解析json时取出数据为undefined的问题:
这时需要:
利用 ajax 一步拿到的数据转换为 json 格式往前台传数据时,有时浏览器会将其解析为一个语句块来处理。所以需要将其转换为一个对象来取数据。

for(var i=0;i<data.length;i++)
            {
                if(i==0)  var result1=eval("("+data[i]+")");
                if(i==1)  var result2=eval("("+data[i]+")");
                if(i==2)  var result3=eval("("+data[i]+")");
                if(i==3)  var result4=eval("("+data[i]+")");
            }

data为json数据,内涵多个元素,通过遍历一一转换。

base64转换问题

在js中直接设置img属性值为 图片的base64数据即可。

document.getElementById('img').setAttribute('img', 'base64数据')

我的设置如下:

 var data1="data:image/jpg;base64,"+result1.img;
 document.getElementById('pic1').setAttribute('src', data1);

这里的pic1意思为id为pic1的img,设置src属性=data1.

数据返回给后台问题

这里我通过表单form返回,具体操作如下:

<form id="file_upload" action=" 你要发送的地址" enctype="multipart/form-data" method="post">

若想要接收的话,js则可以在想要接收的部分设置:

 $(function () {
	 $("#file_upload").ajaxForm(function (data) {
	            console.log(data);
	            }
	  );
 });
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值