Cześć,
mam problem, którego nie potrafię przeskoczyć...

Chcę skorzystać z REST API jakie udostępnia Redmine za pomocą JavaScript.
http://www.redmine.org/projects/redmine/wiki/Rest_api

W czym problem?
Redmine został zainstalowany na: bugtracker.example.com
Ma natomiast przyjmować żądania ze wszystkich domen a nie tylko tej, na której został zainstalowany.

**Częściowe rozwiązanie: **
Pobieranie informacji działa bez zarzutów, wystarczyło w vhost dodać tylko wpisów odnośnie nagłówków - akceptowanie żądań określonego typu pomiędzy domenami.

Header always set Access-Control-Allow-Origin: *
Header always set Access-Control-Allow-Methods: "GET, POST, OPTIONS"
Header always set Access-Control-Allow-Headers: "Content-Type"
Header always set Access-Control-Request-Method: "GET, POST, OPTIONS"
Header always set Access-Control-Request-Headers: "Content-Type"
Header always set Access-Control-Max-Age: 180

Problem zaczyna się, gdy chce wysłać nowe zagadnienie. Otóż według dokumentacji należy ustawić Content-Type na "application/json".

xhr.setRequestHeader("Content-type", "application/json");

Niestety ta linia powoduje że żądanie zostaje przetwarzane jako preflight request. Podobnie sprawa ma się z uploadem obrazka, dla którego wymagany jest Content-type ustawiony na application/octet-stream.

Jeśli nie zmienię nagłówka to zgodnie z dokumentacją dostaję:
422 Unprocessable Entity
jeśli natomiast ustawię Content-Type to wysłane zostaje żądanie OPTIONS, które nie zostaje poprawnie przetworzone:
404 Not Found

Być może ktoś próbował zrobić coś podobnego i w jakiś sposób udało mu się ustawić wszystko tak aby działało. Byłbym wdzięczny za wszelkie wskazówki. Jeśli potrzeba więcej kodu, który wykorzystuje proszę dać znać.