ueditor-跨域问题

项目开发中用了百度ueditor编辑器,在用到ueditor的表情时,遇到了跨域问题,因为我们项目中所有的js、css、图片等静态资源都是放在cdn里,跟项目工程不在同个服务器,所以导致了跨域问题。
举个例子示意下:

项目域名:http://home.index.html,对应index.css、 index.js
表情相关资源域名:http://cdn.emotion.html,对应emotion.css、emotion.js
http://cdn.emotion.html是以iframe的形式嵌在http://home.index.html下,在读取emotion.html下的资源的时候就报跨域的错误了

去网上查了下iframe跨域解决方案,千篇一律说:

在index.html里加  document.domain = "home.com";//根域
在emotion.html里加  document.domain = "home.com";//根域

但是用这种方式解决跨域问题是有条件限制的,你只能赋成当前的域名或者基础域名,亲测确实不行,还会报错,所以就放弃了这个方案

我的解决方案是找到ueditor的配置文件ueditor.config.js里的iframeUrlMap,重新配置表情对应iframe的src:

iframeUrlMap:{
  'emotion:'http://home.emotion.html'
}

然后把ueditor->dialogs->emotion下的emotion.html到项目工程下,更改里面js、css等资源的请求路径,重新部署后,ifarme里的src就会由原先的“http://cdn.emotion.html”变成“http://home.emotion.html”,这样就不涉及跨域问题了。

同理,对于ueditor的超链接iframe导致的跨域问题,也可以通过这个方法解决:

iframeUrlMap:{
  'emotion:'http://home.emotion.html',
  'link':'http://home.link.html'
}

再将ueditor下的link.html移植到工程下,一起发布到服务器,就不会产生跨域问题。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. 什么是跨域? 跨域一词从字面意思看,就是跨域名嘛,但实际上跨域的范围绝对不止那么狭隘。具体概念如下:只要协议...
    他在发呆阅读 4,225评论 0 0
  • 第一篇.单元格设置篇 一、单元格小技巧 1.常用快捷键 2.常用数字格式设置 3.日期时间格式设置 4.表格只能填...
    温暖在靠近阅读 4,365评论 0 2
  • 修行者一方优势太大,论个体,除了两个‘神帝后期’的闲散修行者以外,其他最弱的都是神帝圆满级实力!而那一群浑源生命‘...
    im喵小姐阅读 1,828评论 0 0
  • 中午吃完饭,跟同事一起整理办公室的书籍。 今天整理的是领导的一些书,我们先把书全部挪出来,然后分门别类,重新放置在...
    蓝锦2017阅读 3,538评论 2 5

友情链接更多精彩内容