Описание проблемы: я построил ионное приложение, которое использует api rest JIRA для извлечения проблемы (данные GET), создания проблемы (данные POST).Я всегда получаю ошибку CORS, такую как preflight request did not succeed or same origin policy
, которая ожидается, когда мы используем ионную подачу, но она не работает, когда я собираю и выпускаю подписанный apk.
Мой ионный сервер работает на локальном хосте: 8100 (ионная версия -4), а сервер Jira работает на локальном хосте: 8089 (версия JIRA - ядро 7)
Что я сделал до сих пор: следовалПрокси-подход, как упомянуто в ионном блоге - Нет успеха
Включен плагин фильтра CORS на сервере JIRA и в белом списке ионного сервера - Нет успеха
Добавлены заголовки для источника разрешения управления - Нет успеха
Создайте файл apk, используя --prod release, подписанный и попробовавший то же самое на устройстве --No sucess
Вот моя ссылка на файл auth.ts, если кто-нибудь может помочь и посоветовать здесь о том, что яздесь я делаю неправильно.
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import { AuthProvider } from '../auth/auth';
import { Issue } from '../../models/issue'
@Injectable()
export class JiraProvider {
apiVersion: string = '2'; // The API version we want to use
jiraInstanceUrl: string = 'http://localhost:8089' // The Jira instance URL
urlString: string = `${this.jiraInstanceUrl}/rest/api/${this.apiVersion}`; // Concat those together
constructor(
public http: HttpClient,
public auth: AuthProvider
) {
}
// Authenticate the user against Jira's profile endpoint.
public authenticateUser(username: string, password: string): Observable<Object> {
return this.http.get(`${this.urlString}/myself`, {
headers: new HttpHeaders()
.append('Authorization', `Basic ${btoa(username + ':' + password)}`)
.append("Access-Control-Allow-Origin","*")
});
}
// Get issue details based on the provided key.
public getIssue(key: string): Observable<Issue> {
return this.http.get<Issue>(`${this.urlString}/issue/${key}`, {
headers: new HttpHeaders()
.append('Authorization', `Basic ${this.auth.getAuthString()}`)
.append("Access-Control-Allow-Origin","*")
});
}
public getAllIssue():Observable<any> {
return this.http.get(`${this.urlString}/search?jql=project=PM`,{
headers: new HttpHeaders()
.append('Authorization', `Basic ${this.auth.getAuthString()}`)
.append("Access-Control-Allow-Origin","*")
});
}
public postIssue(data):Observable<any>{
return this.http.post(`${this.urlString}/issue`,JSON.stringify(data),{
headers: new HttpHeaders()
.append('Authorization', `Basic ${this.auth.getAuthString()}`)
.append('Content-Type','application/json')
.append("X-Atlassian-Token", "no-check")
.append("User-Agent", "xx")
.append("Access-Control-Allow-Origin","*")
});
}
}
Добавлен скриншот в соответствии с запросом (пожалуйста, не меняйте сервер JIRA намеренно, чтобы 8089 обновил вопрос соответствующим образом)