codefrau / SqueakJS

A Squeak Smalltalk VM in Javascript
https://squeak.js.org
MIT License
371 stars 76 forks source link

SocketPlugin: streaming & cache proxy decisions #65

Closed fniephaus closed 8 years ago

fniephaus commented 8 years ago

Use fetch API if available to download content incrementally as suggested in #64 (with fallback to XMLHTTPRequests). Also fix a bug when sending bigger files.

Cache CORS proxy decisions as discussed in #63. Also improve SocketPlugin code.

Close #63 and #64

codefrau commented 8 years ago

It doesn't work for me with either a 4.5 or 4.6 image:

Fetch API cannot load http://source.squeak.org/squeak46/?C=M;O=D. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost' is therefore not allowed access. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
Retrying with CORS proxy: https://crossorigin.me/http://source.squeak.org:80/squeak46/?C=M;O=D
Fetch API cannot load https://crossorigin.me/http://source.squeak.org:80/squeak46/?C=M;O=D.
Request header field authorization is not allowed by Access-Control-Allow-Headers in preflight response.
TypeError: Failed to fetch(…)
codefrau commented 8 years ago

FireFox has a (maybe?) better error message:

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://crossorigin.me/http://source.squeak.org:80/squeak45/?C=M;O=D. (Reason: missing token 'authorization' in CORS header 'Access-Control-Allow-Headers' from CORS preflight channel).

fniephaus commented 8 years ago

I also have problems loading content through crossorigin.me using the fetch API. Is it possible that the proxy has been changed somehow?