Html AngularJS“;否';访问控制允许原点';请求的资源上存在标头。”;CORS发行
我试图使用AngularJS在HTML页面上访问Spring应用程序的JSON响应,并获得“请求的资源上没有“access Control Allow Origin”头。”错误。请求的URL为 HTML代码如下所示:Html AngularJS“;否';访问控制允许原点';请求的资源上存在标头。”;CORS发行,html,json,angularjs,spring,cors,Html,Json,Angularjs,Spring,Cors,我试图使用AngularJS在HTML页面上访问Spring应用程序的JSON响应,并获得“请求的资源上没有“access Control Allow Origin”头。”错误。请求的URL为 HTML代码如下所示: var-app=angular.module('myApp',[]); app.config(['$httpProvider',函数($httpProvider){ $httpProvider.defaults.useXDomain=true; 删除$httpProvider.
var-app=angular.module('myApp',[]);
app.config(['$httpProvider',函数($httpProvider){
$httpProvider.defaults.useXDomain=true;
删除$httpProvider.defaults.headers.common['X-Requested-With'];
}
]);
app.controller('Hello',函数($scope,$http){
$http.get('http://174.142.61.106:8080/BMAppJ/learningresources/getlist').
成功(功能(数据){
$scope.response=数据;警报(响应);
});
$scope.clickme=function(){
var res=jQuery(“#资源_类型”).val();
$http.get('http://174.142.61.106:8080/BMAppJ/learningresources/getlist/“+res)。
成功(功能(数据){
$scope.response=数据;
});
}
});
资源类型资源名称
{{x.resourceType}}
{{x.name}
我不熟悉Spring,但以下是我在PHP应用程序中设置的标题:
$headers->addHeaderLine('Access-Control-Allow-Methods', 'GET');
$headers->addHeaderLine('Access-Control-Allow-Credentials', 'true');
$headers->addHeaderLine('Access-Control-Allow-Origin', '*');
$headers->addHeaderLine('Access-Control-Allow-Headers', 'Content-Type, *');
也许这对你的情况也有帮助:)
关于您可以通过实现javax.servlet.filter接口来创建过滤器类:
@Component
public class YourCORSFilter implements Filter {
@Override
public void init(FilterConfig arg0) throws ServletException {}
@Override
public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
HttpServletResponse response=(HttpServletResponse) resp;
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Headers", "x-requested-with");
chain.doFilter(req, resp);
}
@Override
public void destroy() {}
}
此筛选器现在不起任何作用。我必须将Spring应用程序配置为知道web.xml中的过滤器。只需将以下行放在web.xml文件的末尾
<filter>
<filter-name>yourCORSFilter</filter-name>
<filter-class>
your.package.YourCORSFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>yourCORSFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
你的公司过滤器
你的.package.YourCORSFilter
你的公司过滤器
/*
现在,Spring将把YourCORSFilter中指定的头放到
但是你应该知道接受所有的客户端来源是
不实用,这是一个真正的安全问题。只允许受信任的
客户端来源消耗您的资源在将来会更合理
真实世界的应用程序
我已经讨论了这个问题,但我仍然面临这个问题。您应该看看谢谢,您对web.xml配置的解释很有帮助。