当前位置: 首页 > 知识库问答 >
问题:

AngularJS$HTTP Get方法错误,如“对飞行前请求的响应”

马野
2023-03-14
 $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'。

共有1个答案

田化
2023-03-14

提供header对您没有帮助,因为您仍然从本地即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() {
}

}`
 类似资料:
  • 我已经找了5个小时左右,但我放弃了。我的ajax get请求不起作用。 它连接到标准的C#mvc api,但我得到的只是这个错误: 无法加载XMLHttpRequesthttp://localhost:18428/api/Reservation/1?weekNumber=1. 对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“访问控制允许来源”标头。起源'http://localhost因

  • 向传递的 URL 发出一个 GET 请求。 使用 XMLHttpRequest web API 向给定的 url 发出 get 请求。 通过调用给定的 callback 和 responseText 来处理 onload 事件。 通过运行提供的 err 函数,处理onerror事件。 省略第四个参数 err ,默认将错误记录到控制台的 error 流。 const httpGet = (url,

  • 我已经创建了一个应用程序,使用角和springboot进行Spring安全的基本身份验证,但我得到401错误...我是springboot新手 “从源'http://localhost:4200'访问'http://localhost:8080/hello-world/path-variable/MSD'的XMLHttpRequest已被CORS策略阻止:对预检请求的响应未通过访问控制检查:它没有

  • 问题内容: 我一直在尝试向服务器发布一个简单的帖子,但是在预检调用中总是失败。对于我的一生,我不知道发生了什么,所有CORS标头在服务器上似乎都是正确的。 该请求确实是从本地主机发出的,但我认为应该由本地来处理。 控制台中显示的错误是: 和 任何帮助/建议表示赞赏。 问题答案: 403响应状态表示服务器后端没有配置为处理请求,而不仅仅是CORS预检请求是一个普遍问题。 服务器必须以2xx成功状态(

  • 问题内容: 我开发了一个PhoneGap应用程序,现在将其转换为移动网站。除了一处小故障,一切都可以顺利进行。我通过POST请求使用了某个第三方API,该API在该应用中可以正常运行,但在移动网站版本中却无法运行。 仔细查看后,似乎AngularJS(我想实际上是浏览器)正在首先发送OPTIONS请求。今天,我对CORS有了很多了解,但似乎无法弄清楚如何完全禁用它。我没有访问该API的权限(因此无

  • 即使我在NodeJS/ExpressJS中添加了以下代码,我也无法解释为什么会遇到以下错误。 XMLHttpRequest无法加载http://localhost:9000/polymer/105724/apply.对预检请求的响应无法通过权限改造检查:请求的资源上不存在“访问控制允许源”标头。因此不允许访问源“http://localhost:8080”。