Ich versuche eine Anfrage von meiner Webstorm Anwendung an meine Backend Anwendung zu senden, die beide an verschiedenen Ports sind, ich arbeite mit angularJS im Frontend und Java Frühling 4.2.5 in Backend. Ich habe verschiedene Dinge ausprobiert, wie cors Filter, cors Anmerkung jedoch hinzufügen, nachdem diese meine Fehler zu tun, siehtWie man den CORS Filter im Frühjahr 4.2 aktiviert
XMLHttpRequest cannot load http://localhost:8081/appUser. 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.
Die AngularJS Controller ist wie
registerController.factory('registerFactory', function(){
return {
getClassification:function($http,tempString){
//TODO add URL
var url = "http://localhost:8081/example?eg="+tempString
return $http({
method: 'POST',
url: url
});
}
}
});
Die Feder-Controller wie
sieht@RequestMapping(value = "/example", method = RequestMethod.POST)
@ResponseBody
public String postAppUser(@RequestParam String eg) throws JsonProcessingException {
return "ok yes ";
}
Ich habe versucht, CORS-Filter hinzuzufügen, aber nichts scheint zu funktionieren. Nicht sicher, ob es von der App abgeholt wird. Ich meine, wenn es im Config-Pfad ist.
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Component;
@Component
public class CORSFilter implements Filter {
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
response.setHeader("Access-Control-Allow-Origin", request.getHeader("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);
}
public void init(FilterConfig filterConfig) {
}
public void destroy() {
}
}
Die web.xml sieht aus wie
<web-app>
<display-name>Archetype Created Web Application</display-name>
<filter>
<filter-name>cors</filter-name>
<filter-class>com.myApp.security.CORSFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>cors</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
Dies ist, was die HTTP-Aufruf aussieht. Es enthält keine zulässigen Zugriffsheader
Request URL:http://localhost:8081/appUser
Request Method:GET
Status Code:404 Not Found
Remote Address:[::1]:8081
Response Headers
view source
Content-Length:965
Content-Type:text/html;charset=utf-8
Date:Sun, 19 Jun 2016 03:43:40 GMT
Server:Apache-Coyote/1.1
Request Headers
view source
Accept:application/json, text/plain, */*
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-US,en;q=0.8
Cache-Control:no-cache
Connection:keep-alive
Host:localhost:8081
Origin:http://localhost:63342
Ich würde wirklich schätzen, wenn jemand mich führen könnte. Ich steckte seit den letzten 5 Tagen fest, das scheint nicht zu funktionieren. Wenn Sie auf einen Blog/Tutorial/Video verweisen könnten, die ich beziehen kann
versucht, die hinzugefügt. Funktioniert nicht – user3342812
Ist dies, weil meine HTTP-Anfrage nicht den erforderlichen Ursprungsheader enthält? – user3342812