Pra*_*dey 4 javascript rest playframework angularjs playframework-2.3
我试图通过使用Angularjs-1应用程序从localhost命中Restful URL来获取json数据.
我收到了这个错误
http://localhost:9000/mlm/user/all Failed to load resource: 
the server responded with a status of 404 (Not Found)
index.html:1 XMLHttpRequest cannot load http://localhost:9000/mlm/user/all. 
Response to preflight request doesn't pass access control check:
No 'Access-Control-Allow-Origin' header is present on the requested resource.
Origin 'http://localhost:63342' is therefore not allowed access. 
The response had HTTP status code 404.
我正在使用play-framework 2.5.4(java).
编辑1:为app.conf添加了CORS设置
    play.filters {
    cors {
    # Filter paths by a whitelist of path prefixes
    pathPrefixes = ["/"]
    # The allowed origins. If null, all origins are allowed.
    allowedOrigins = null
    # The allowed HTTP methods. If null, all methods are allowed
    allowedHttpMethods = ["GET", "POST"]
    allowedHttpHeaders = ["Accept"]
    preflightMaxAge = 3 days
  }
}
最后这对我有用.
根据官方文件
Filter.java是(没有工作):
import play.mvc.EssentialFilter;
import play.filters.cors.CORSFilter;
import play.http.DefaultHttpFilters;
import javax.inject.Inject;
public class Filters extends DefaultHttpFilters {
    @Inject public Filters(CORSFilter corsFilter) {
        super(corsFilter);
    }
}
但它有效.有效的是:
Filter.java(工作)
import play.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.asJava() };
    }
}
感谢这个答案,关于堆栈溢出的类似问题.
但是为什么2.5.x 的官方文档的Filter.java代码不起作用的原因是百万美元的问题?
| 归档时间: | 
 | 
| 查看次数: | 2863 次 | 
| 最近记录: |