Project

General

Profile

Filtered API calls delete CORS

Added by Tommaso Visconti over 9 years ago

This is a strange behaviour of the API. I'm using rack-cors to enable API consuming by other apps (Ember.js).

When using various endpoints (/issues.json, time_entries.json, projects.json) everything is ok.

With this specific call, CORS headers aren't added to the response and the browser blocks the request with the "famous" error: No 'Access-Control-Allow-Origin' header is present on the requested resource
The call is:

/time_entries.json?user_id=<ID>
or
/time_entries.json?user_id=me

The only added header is:

X-Rack-CORS: preflight-hit; no-origin

If I change the param with something not recognized by redmine (e.g. ?wrong_param=me), everything works well (the response isn't filtered). So the problem seems to be related to the filtering of the time entries by user.
Maybe with this particular filtering redmine creates a different response which avoid the rack-cors action?

The correct headers, added by rack-cors, should be:

Access-Control-Allow-Origin: http://localhost:4200
Access-Control-Allow-Methods: GET, POST, DELETE, PUT, OPTIONS, HEAD
Access-Control-Max-Age: 0
Access-Control-Allow-Credentials: true
X-Rack-CORS: hit