我在应用程序中使用PhotoEditorSDK, 但出现附件错误。 附件中的代码也遵循我用来得出这些结果的代码。
这似乎是跨域问题
,但是SDK有其特定部分。 我在公司的支持下开了电话,但到目前为止没有任何进展。 如果有人已经遇到此问题,请知道原因或解决方法。 请帮助我;-;
"use stricts";
/*link = http://localhost:8080/editar?&page=1&url=https://photos.google.com/lr/photo/AGj1epXDcMoRlOQ7QcWY9dZ2ALBIqhfJuTSz-ywrilsUhstrZ7wo26XkgDSBk4Jx2nJuIPm3LCFoKuo
*/
var editor;
var vars = getUrlVars();
var page = vars.page;
var url = vars.url;
window.onload = function () {
var container = document.getElementById('editor');
var img = new Image();
img.src = url;
editor = new PhotoEditorSDK.UI.ReactUI({
container: container,
enableUpload: false,
crossOrigin: 'anonymous',
editor: {
image: img,
responsive: true,
enableZoom: false,
controlsOrder: ['transform', 'filter', 'adjustments', 'focus'],
export: {
download: false,
format: 'image/jpeg',
type: PhotoEditorSDK.RenderType.BLOB
},
},
//your license below
license: 'license',
assets: {
baseUrl: '/assets'
},
});
}
function getUrlVars() {
console.log(window.location.href);
var vars = [], hash;
var hashes = window.location.href.slice(window.location.href.indexOf("#") + 1).split("&");
for (var i = 0; i < hashes.length; i++) {
hash = hashes[i].split("=");
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}
<html>
<head>
<script src="/js/jquery-1.11.3.min.js"></script>
<!-- React Dependencies for the SDK UI -->
<script src="js/vendor/react.production.min.js"></script>
<script src="js/vendor/react-dom.production.min.js"></script>
<!-- PhotoEditor SDK-->
<script src="js/PhotoEditorSDK.min.js"></script>
<!-- PhotoEditor SDK UI -->
<script src="js/PhotoEditorSDK.UI.ReactUI.min.js"></script>
<link rel="stylesheet" href="css/PhotoEditorSDK.UI.ReactUI.min.css" />
</head>
<body>
<div id="editor" style="width: 100%; height: 100%; padding-top: 65px;"></div>
<script src="js/editar.js"></script>
</body>
</html>
答案 0 :(得分:0)
在将图像推送到PhotoEditorSDK之前,您需要等待图像加载。
您应该将editor =
代码块移至img.onload=""
方法中。
此致
答案 1 :(得分:0)
在控制台中,有一条错误消息,指出由于同源策略而无法加载资源。
您要做的是为加载的资源启用CORS(跨域资源共享)。您可以查看更多信息here。
但是,您可能无法控制已加载的资源(例如,允许用户通过指定外部URL添加图像)。
在这种情况下,您应该考虑实现一个PHP“代理”,该代理将在服务器上下载映像(注意,同源策略适用于浏览器),然后将该映像提供给前端。您有两种选择:
base64
,然后通过XHR
请求进行检索。