Ich beginne zu erstellen Angularjs Projekt mit angular starter project und Back-End mit Spring Java. wenn AngularJS Rest Anforderungsruf es zeigen ist folgende Fehler in der KonsoleSo aktivieren Sie CORS in Gulp, Angularjs und Java-Projekt
XMLHttpRequest cannot load http://localhost:8085/sample/api/signup. 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:5000' is therefore not allowed access. The response had HTTP status code 404.
Gulp-Datei:
gulp.task('server', function() {
connect.server({
root: filePath.build.dest,
fallback: filePath.build.dest + '/index.html',
port: 5000,
livereload: true
,
middleware: function(connect, o) {
return [ (function() {
var url = require('url');
var proxy = require('proxy-middleware');
var options = url.parse('http://localhost:8085/sample'); // path to your dev API
options.route = '/api';
return proxy(options);
})() ];
}
});
});
AngularJS
var data = JSON.stringify({
'name':'jiji',
'lastName':'k',
'email':'[email protected]',
'password':'1234',
});
var config = {
headers: {
'Access-Control-Allow-Origin': '*',
'contentType': 'application/json',
'Accept': 'application/json'
}
}
$http.post('http://localhost:8085/sample/api/signup', data, config)
.success(function(data, status, headers, config) {
return (data);
})
.error(function(data, status, header, config) {
return (data);
});
Federkerne Filter
public class CorsFilter implements Filter {
public CorsFilter() {
System.out.println("CorsFilter init");
}
@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
System.out.println("SimpleCORSFilter init 2");
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Credentials", "true");
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Headers", "Content-Type, Accept, X-Requested-With, remember-me");
chain.doFilter(req, res);
}
Wenn ich Probe erstellen proje ct in wamp server senden anfrage 'http://localhost:8085/sample/api/signup' Server wird "CorsFilter init" drucken, aber nicht in Schluck-Server