Javascript AngularJS$http Get方法错误,如;对飞行前请求的响应”; #############错误

Javascript AngularJS$http Get方法错误,如;对飞行前请求的响应”; #############错误,javascript,angularjs,Javascript,Angularjs,无法加载XMLHttpRequest。 对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“访问控制允许来源”标头。因此不允许访问源代码“”。请在配置函数中使用以下代码 $http({ method: 'GET', url : 'http: //esbuatt1wm.ito.unisys.com:7001/invoke/wm.server/ping', timeout: 10000, headers: { 'Access-Contr

无法加载XMLHttpRequest。
对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“访问控制允许来源”标头。因此不允许访问源代码“”。请在配置函数中使用以下代码

 $http({
    method: 'GET',
    url : 'http: //esbuatt1wm.ito.unisys.com:7001/invoke/wm.server/ping',
        timeout: 10000,
    headers: {
        'Access-Control-Allow-Origin': '*',
        'Access-Control-Allow-Methods': 'GET,POST,PUT,DELETE,OPTIONS,JSONP',
        'Content-Type': '*',
        'Access-Control-Allow-Headers': 'Content-Type',
        'Access-Control-Allow-Credentials': 'true'
    },
    params: {}, // Query Parameters (GET)
    transformResponse: function(data, status, headers, config) {
        console.log('transferms data ' + data);
        // string -> XML document object
        return $.parseXML(data);
    }
 }).success(function(data, status, headers, config) {
    // XML document object
    $scope.xml = data.documentElement.innerHTML;
    console.dir('xml data ' + $scope.xml);
 }).error(function(data, status, headers, config) {
    $window.alert('ERROR.');
 });

提供标头对您没有帮助,因为您仍然从本地主机(即localhost)访问服务器。问题是,当您从本地点击服务器时,服务器会将请求视为不同的域请求

您可以使用express.js(express是一个服务器)。在这种情况下,服务器正在与服务器通信,因此,此错误将被删除

或者,如果在您试图命中的服务器上,您的后端代码仍然存在,请为该特定调用或任何其他调用启用CORS请求

如果您使用的是spring boot,则可以使用以下代码:

config(function($httpProvider) {
    $httpProvider.defaults.useXDomain = true;
    delete $httpProvider.defaults.headers.common['X-Requested-With'];
});

启用它将解决您的问题。这是两个可以克服此错误的选项。

应该在服务器端设置访问控制允许原点。应该在服务器端添加访问控制允许原点。不是客户端如果我在chrome中运行上面的url,它可以正常工作。在angularjs中启用客户端cors只需要此代码,请检查服务器是否启用cors,如果不启用服务器端的cors。
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.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;

@Component
public class SimpleCORSFilter implements Filter {

private final Logger log = LoggerFactory.getLogger(SimpleCORSFilter.class);

public SimpleCORSFilter() {
    log.info("SimpleCORSFilter init");
}

@Override
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);
}

@Override
public void init(FilterConfig filterConfig) {
}

@Override
public void destroy() {
}

}`