到CRM API的角度应用程序-CORS策略已阻止从来源“本地主机”访问“处的”处的XMLHttpRequest

时间:2020-04-09 13:05:21

标签: angular cors dynamics-crm

向我的api的crm端点进行角度请求时,出现以下错误。

在以下位置访问XMLHttpRequest 原产地的“ http://acc-crm.domain.com:1234/api/data/v8.0/contacts” “ http://localhost:49910”已被CORS政策禁止:否 请求中出现“ Access-Control-Allow-Origin”标头 资源。

是否可以更改crm api的任何配置以允许我的测试环境访问它,或者我需要在客户端进行更改。我已经尝试将"Access-Control-Allow-Origin": "*"添加到请求的标头中。

注意:由于安全问题,最终我会将crm api调用放在后端C#应用程序上。

发出请求的角度代码:

import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Contact } from './contact';
import { Observable } from 'rxjs';

@Injectable({
  providedIn: 'root'
})
export class ContactsService {

  httpOptions = {
    headers: new HttpHeaders({
      "Content-Type": "application/json",
      "Access-Control-Allow-Origin": "*",
      "Authorization": "Basic " + btoa('username:password')
    })
  };

  constructor(private http: HttpClient) { }

  getContacts():Observable<Contact[]> {
    return this.http.get<Contact[]>("http://acc-crm.domain.com:1234/api/data/v8.0/contacts", this.httpOptions);
  }
}

2 个答案:

答案 0 :(得分:0)

您可以在Chrome中使用 `axios.post( `http://localhost.com:8000//`, values.students.map(d => ({ stud_fname: d }) ) )` 标志进行开发。只需确保为您可能访问的任何其他网站重新启用它即可。

请参见https://stackoverflow.com/a/3177718/4374616

答案 1 :(得分:0)

您忘记分配注释@CrossOrigin 时,会发生此问题,或者您在 angular服务中定义的网址与控制器中的映射