Java Play 2.4.x中的CORS设置

时间:2015-12-12 02:49:38

标签: java cors playframework-2.4

我在使用play 2.4.x设置CORS时遇到了一些问题。我正在使用播放来存储和检索图像文件。当我访问图片时,http://localhost:9000/assets/images/favicon.png'在使用javascript的普通本机test.html文件中,它会抛出CORS安全错误。

我做了以下事情: 在游戏中 - 我添加了 Application.conf 文件

play.filters.cors {
  allowedOrigins = null
  allowedHttpMethods = ["GET", "POST"]
  allowedHttpHeaders = ["Accept"]
  preflightMaxAge = 3 days
}

Filter.java 文件中(在根目录中)

import play.api.mvc.EssentialFilter;
import play.filters.cors.CORSFilter;
import play.http.HttpFilters;

import javax.inject.Inject;

public class Filters implements HttpFilters {

    @Inject
    CORSFilter corsFilter;

    public EssentialFilter[] filters() {
        return new EssentialFilter[] { corsFilter };
    }
}

build.sbt 文件

libraryDependencies ++= Seq(
  javaJdbc,
  cache,
  javaWs,
  filters
)

我在html文件中的javascript代码,我试图将图片加载到画布上:

$("#test").recScribble.loadImage('http://localhost:9000/assets/images/favicon.png');

我的recScribble插件有一个loadImage函数,如下所示,画布上下文为ctx

$.fn.recScribble.loadImage=function(imgSrc){ //to Load image on to the canvas; give the link as parameter
        var imageObj = new Image();
            imageObj.setAttribute('crossOrigin', 'anonymous');
            imageObj.src =imgSrc;
            imageObj.onload = function() {
                canvas.width=imageObj.naturalWidth;
                canvas.height=imageObj.naturalHeight;
                ctx.drawImage(imageObj, 0, 0);
              };
            return this;
        };

HTML返回CORS安全性错误以及以下信息

常规

Request URL:http://localhost:9000/assets/images/favicon.png
Request Method:GET
Status Code:403 Forbidden
Remote Address:[::1]:9000

响应标题

Content-Length:0
Date:Sat, 12 Dec 2015 02:35:47 GMT

请求标题

Accept:image/webp,image/*,*/*;q=0.8
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-US,en;q=0.8
Connection:keep-alive
Host:localhost:9000
Origin:null
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.80 Safari/537.36

当我从正确启用CORS的其他服务器(在Internet上)访问图像时,使用相同的HTML文件加载图像正在工作。所以我猜,javascript没有问题(但不确定)。

我是新手,并且不知道要在这里更改哪个设置。 PLS。帮助!

0 个答案:

没有答案