相关疑难解决方法(0)

如何规避同源政策

同样的原产地政策

我想制作一个关于HTML/JS 同源政策的社区维基,希望能帮助任何人搜索这个主题.这是SO上搜索次数最多的主题之一,没有统一的wiki,所以我去:)

相同的源策略可防止从一个源加载的文档或脚本从另一个源获取或设置文档的属性.此政策可以追溯到Netscape Navigator 2.0.

您最喜欢采用同源政策的方式有哪些?

请保持示例详细,最好还链接您的来源.

javascript ajax same-origin-policy

150
推荐指数
6
解决办法
59万
查看次数

HTML5 Canvas getImageData安全错误

我想将彩色图像更改为灰度,但是当我尝试使用getImageData时出现安全性错误.

Uncaught SecurityError: Failed to execute 'getImageData' on 'CanvasRenderingContext2D': The canvas has been tainted by cross-origin data. 
Run Code Online (Sandbox Code Playgroud)

我知道这个错误已经到处讨论过,但没有一个有明确的解决方案.请帮忙!

<html>
<script>
function grayscale()
{
    var myCanvas = document.getElementById("c1");
    var myCanvasContext = myCanvas.getContext("2d");

    var img = document.getElementById("myImage");
    img.crossOrigin = "anonymous";

    var imgWidth = img.width;
    var imgHeight = img.height;

    myCanvas.width = imgWidth;
    myCanvas.height = imgHeight;

    myCanvasContext.drawImage(img,0,0);

    var imageData = myCanvasContext.getImageData(0,0, imgWidth, imgHeight);

    for (j=0; j<imageData.height; i++)
    {
            for (i=0; i<imageData.width; j++)
            {
                    var index=(i*4)*imageData.width+(j*4);
                    var red=imageData.data[index];
                    var green=imageData.data[index+1];
                    var blue=imageData.data[index+2];
                    var alpha=imageData.data[index+3];
                    var …
Run Code Online (Sandbox Code Playgroud)

javascript html5 canvas cors html5-canvas

7
推荐指数
1
解决办法
5885
查看次数

在Chrome上使用THREE.js在本地图像上拒绝跨源图像加载

我正在使用THREE.js,我在开发者控制台中收到此错误:

Cross-origin image load denied by Cross-Origin Resource Sharing policy.
Run Code Online (Sandbox Code Playgroud)

当我用Chrome打开我的脚本时.代码如下所示:

var particle_system_material = new THREE.ParticleSystemMaterial({
    color: 0xffffff,
    map: THREE.ImageUtils.loadTexture("images/circle.png"),
});
Run Code Online (Sandbox Code Playgroud)

所以你可以猜到:

map: THREE.ImageUtils.loadTexture("images/circle.png");
Run Code Online (Sandbox Code Playgroud)

是问题.使用Firefox,它可以很好地工作.

我已经阅读了以下链接中的提示: Chrome,three.js:交叉原始图像加载被拒绝, https://github.com/mrdoob/three.js/wiki/How-to-run-things-locally, https://www.google.fr/search?q=Access-Control-Allow-Origin

我也意识到了给出的命令:

使用命令行标志启动Chrome可执行文件:

chrome --allow-file-access-from-files

什么都行不通,我疯了.它只是我硬盘上的一个图像,包含HTML和JS文件,没有服务器,没有"原点".

javascript cors three.js

6
推荐指数
1
解决办法
8144
查看次数

如何在javascript上设置img的跨域

我正在尝试使用 FabricJs 制作 T 恤定制器。
但每次我尝试将画布转换为 Base64

$('#frontCanvas')[0].value = $('canvas')[0].toDataURL("image/png")
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

SecurityError:操作不安全。

我确信与 crossOrigin 有关,但我不知道如何将其添加到我的脚本中。
我尝试了很多不同的方法,但没有成功。

任何帮助将不胜感激。
谢谢你!

$scope.loadImage = function (source) {
    var opacity = (function (min, max) {
        return Math.random() * (max - min) + min;
    })(0.5, 1);

    fabric.Image.fromURL(source, function (image) {
        image.set({
            left: 100,
            top: 100,
            angle: 0,
            padding: 10,
            cornersize: 10,
            hasRotatingPoint: true
        });

        //image.scale(getRandomNum(0.1, 0.25)).setCoords();
        canvas.add(image);
    });
};
Run Code Online (Sandbox Code Playgroud)

javascript canvas fabricjs

3
推荐指数
1
解决办法
8436
查看次数