向我的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);
}
}
答案 0 :(得分:0)
您可以在Chrome中使用 `axios.post(
`http://localhost.com:8000//`,
values.students.map(d => ({
stud_fname: d
})
)
)`
标志进行开发。只需确保为您可能访问的任何其他网站重新启用它即可。
答案 1 :(得分:0)
当您忘记分配注释@CrossOrigin
或时,会发生此问题,或者您在 angular服务中定义的网址与控制器中的映射