Bir Rest API'sini çağırmak için Spring RestTemplate'i kullandığımda. Spring RestTemplate API'ye çağrı başlatıldı, ancak jQuery aynı kaynak politikası nedeniyle başarısız oldu
public class JiraBusImpl implements JiraBus {
private RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = BusUtils.createHttpHeaderWithDefaultBasicAuth();
@Override
public List<JIRAProject> getProjects() {
HttpEntity<String> request = new HttpEntity<String>(headers);
ResponseEntity<JIRAProject[]> response = restTemplate.exchange("http://jira_url:port/rest/api/2/project",
HttpMethod.GET, request, JIRAProject[].class);
JIRAProject[] projectsField = response.getBody();
return Arrays.asList(projectsField);
}
}
Normalde çalıştı ama çağırmak için jQuery kullanırken, başarısız ve
XMLHttpRequest url yükleyemiyor hata verir. Ön kontrol isteğine yanıt, erişim denetimi kontrolünden geçmez: İstenen kaynağa 'Erişim-Kontrol-İzin-Kökeni' başlığı yok. Bu nedenle 'http://localhost:8080' kökeni erişimine izin verilmiyor.
$.ajax({ url: 'http://jira_url:port/rest/api/2/project', type: 'GET', dataType: 'json', beforeSend: function (xhr) { xhr.setRequestHeader ("Authorization", "Basic " + btoa('username' + ":" + 'password')); }, success: function(data) { console.log(data); }, error: function(jqXHR, textStatus, errorThrown) { } });
Nasıl bunu RestTemplate yapabilirsiniz: my jQuery kod İşte
mı?
Teşekkür ederim, ama bilmek istediğim RestTemplate'in bunu nasıl yapacağıdır. Sunucuyu değiştirme iznim yok – dauruy
JSONP'yi denediniz mi? –
Sorunu yanlış anlıyorsunuz, jQuery ile nasıl API aradığını öğrenmek istemiyorum, RestTemplate'in bunu nasıl yaptığını bilmek istiyorum. – dauruy