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

angle-cli"localhost:4200"没有访问控制允许源

昝宜
2023-03-14

我有一个与CORS和所需标头相关的问题。

设置:我运行angular项目和AngularCLI(localhost:4200),我想通过HTTP请求从Web服务访问JSON。当我在浏览器中直接使用URL时,一切都很好,并显示JSON。当我从angular应用程序发送请求时,我收到以下错误:

  XMLHttpRequest cannot load http://t00-holcim:8888/deliveries?fields=liefer_nr,dispo_nr,lieferscheinsta…r,empfaenger_nr,bestellinfo1,bemerkung&limit=3&deliveryNoteDate=2017-04-27. 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:4200' is therefore not allowed access. The response had HTTP status code 403.

以下是程序代码:

....... 
const headers = new Headers(); 
headers.append('Content-Type', 'application/json; charset=utf-8'); headers.append('Access-Control-Allow-Origin', '*'); 
const options = new RequestOptions({ method: RequestMethod.Post, headers: headers });

this.http.get(this.buildURLString(), options).map(this.extractData)
              .subscribe((data) => {........}

我在网上搜索了一下,发现这个错误与CORS有关。因此我追加到header . append(' Access-Control-Allow-Origin ',' * ');但这并没有帮助。

我得到了Chrome的扩展CORS,并启用了“启用跨源资源共享”,但没有任何帮助。

这是服务器端还是客户端的配置变化?

共有2个答案

习洲
2023-03-14

这是一个服务器端问题。您的服务器使用哪种语言?如果您使用的是JS,下面的块会解决CORS问题。

var app = express()    
var cors = require('cors');
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, 
Content-Type, Accept");
next();
});
易俊友
2023-03-14

我们找到了解决办法。当我们使用SpringBoot的RESTFul-Server时,我们在这个服务器上添加了“' < code > Access-Control-Allow-Origin ',' *'”,它工作了..我一直在想,因为它说“预检”,这需要在客户端解决,而不是在服务器端。< br >希望这对任何人有所帮助。

 类似资料:
  • 解决错误“无访问控制-允许-源” 所以我试图搜索访问控制允许起源Node.js,但我只能看到那些使用Express.jsapi。 警告看起来很简单:在响应中添加标题“Access Control Allow Origin”。 Access-Control-Allow-Origin不允许源http://localhost 像上面的问题一样,我也可以看到很多答案都有。使用或res.header,但:

  • 我在做一个离子应用程序。我的问题是:当我试图从服务器获取数据时,我得到了这样的结果: $http.get(url).success(函数(响应){...}

  • 问题内容: 我看到以下错误: 使用此代码: 是什么原因引起的,如何解决? 问题答案: 在当前域之外发出ajax请求时,Javascript是受限制的。 例1:您的域名为example.com,并且您想向test.com提出请求=>您不能。 例2:您的域名是example.com,并且您想向inner.example.com发送请求,但是您不能。 例3:您的域名为example.com:80,并且您

  • 我有错误: XMLHttpRequest 无法加载 http://localhost:5984/cp_config/。当凭据标志为 true 时,不能在“访问控制-允许-源”标头中使用通配符“*”。因此,不允许访问源“http://localhost”。XMLHttpRequest 的凭据模式由 withCredentials 属性控制。 但我有一个标题: 我该如何解决这个问题?

  • 我正在使用以下版本 null CORS策略阻止了从原点获取的访问:请求的资源上没有'Access->Control-Allow-Origin'标头。如果一个不透明的响应满足您的需要,请将请求的模式设置为“no-cors”,以便在禁用CORS的情况下获取资源。 我不明白为什么我会得到这个错误。 以下是从Google Chrome开发者工具中提取的相关请求和响应细节 推荐人策略:严格的-原产地-当-跨

  • 我得到访问控制允许来源错误。 CORS策略阻止从来源“https://localhost:44322”访问“https://localhost:44301/api/xxxx/getallxxxx”处的XMLHttpRequest:对飞行前请求的响应未通过访问控制检查:请求的资源上没有“access-control-allog-origin”标头。 下面是我的头,我已经传递给api调用。 我是否丢失