$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.');
});
#############错误
XMLHttpRequest无法加载http://esbuatt1wm.ito.unisys.com:7001/invoke/wm.server/ping。 对预检请求的响应没有通过访问控制检查:否'访问控制 - 允许 - 来源'标头出现在请求的资源上。起源' http://localhost:1337'因此不允许访问。
答案 0 :(得分:0)
在配置功能中使用以下代码
config(function($httpProvider) {
$httpProvider.defaults.useXDomain = true;
delete $httpProvider.defaults.headers.common['X-Requested-With'];
});
答案 1 :(得分:0)
提供标题对您没有帮助,因为您仍然从本地命中服务器,即localhost。问题是当您从本地命中服务器时,服务器会将请求视为不同的域请求。
你可以使用express.js,(express是服务器)。在这种情况下,服务器正在与服务器通信,因此,此错误将被删除。
或者,如果在您尝试命中的服务器上,您的后端代码仍然存在,请为您执行特定呼叫或任何其他呼叫时启用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() {
}
}`
启用它将解决您的问题。这是您可以克服此错误的两个选项。