上传图片 跨域请求 出现异常
跨域请求出现异常:Request header field sessionId is not allowed by Access-Control-Allow-Headers in preflight response.
原因:调用的接口,请求头中不允许sessionId
解决方法:在ajax方法调用之前先把设置的sessionId删除,待处理完成之后,也要记得把sessionId设置回去。
删除:
delete jQuery.ajaxSettings.headers['sessionId']
设置回去:
jQuery.ajaxSettings.headers['sessionId'] = Cookies.get("sessionId");
具体案例:
//上传图片功能 function uploadImg(file) { var fd = new FormData(); fd.append('uploadFile', file); //删除请求头中的sessionid delete jQuery.ajaxSettings.headers['sessionId'] $.ajax({ url:uploadUrl, type: "post", // Form数据 dataType:'json', data: fd, cache: false, contentType: false, processData: false, beforeSend:function(xhr){ //删除请求头中的sessionid 这里不一定可以,在本项目中,就不行 // delete jQuery.ajaxSettings.headers['sessionId'] }, success: function (data) { // jQuery.ajaxSettings.headers['sessionId'] = Cookies.get("sessionId"); linkImage = data.visitPath; //上传成功,展示在页面上 展示 linlUrl $("#linkImage").attr("src",linkImage); } }); //将数据设置回去 jQuery.ajaxSettings.headers['sessionId'] = Cookies.get("sessionId"); }