vimeo.js icon indicating copy to clipboard operation
vimeo.js copied to clipboard

Upload Acces-Control-Access-Origin Error

Open rnvarma opened this issue 8 years ago • 9 comments

I am running a local server on localhost:8000 and initializing the library with the clientID, clientSecrets, and accessToken. When I make the streamingUpload API call on a video uploaded by a user, I get the following error messages in my chrome developer console.:

XMLHttpRequest cannot load https://api.vimeo.com/me/videos. Response to preflight request doesn't pass access control check: A wildcard '*' cannot be used in the 'Access-Control-Allow-Origin' header when the credentials flag is true. Origin 'http://localhost:8000' is therefore not allowed access. The credentials mode of an XMLHttpRequest is controlled by the withCredentials attribute.

Uncaught TypeError: res.setEncoding is not a function

Uncaught Error: Network error

Any idea what might be causing this?

rnvarma avatar Jun 14 '16 15:06 rnvarma

It sounds like you are trying to use this library from your browser? Is this correct? (maybe with browserify or something).

Dashron avatar Jun 14 '16 15:06 Dashron

Yes the API is being called from javascript which is running in the browser. Is that not supported?

rnvarma avatar Jun 14 '16 15:06 rnvarma

For some more information: the web app has a django backend and is using webpack to build the javascript files (react frontend) to then be loaded in the html templates.

rnvarma avatar Jun 14 '16 15:06 rnvarma

Correct, we don't currently support using this library in the client. I believe we have seen this error in the past though, so I'll have our developers dig in further and see why you can't make an AJAX call to /me/videos.

Dashron avatar Jun 15 '16 01:06 Dashron

So if I want a user to upload a video from our website, would I have to upload the video to our server and then upload it through the API on the server side?

rnvarma avatar Jun 15 '16 13:06 rnvarma

That's the currently 100% supported flow. We will be releasing client side logic in the future, but for now the closest option is https://github.com/websemantics/vimeo-upload. This library has client side upload, but transmits the access token to the client. Really only the upload url should be transmitted to the client.

Dashron avatar Jun 15 '16 21:06 Dashron

As per vimeo official guide video upload is supported through HTTP PUT directly from client, you can get secure upload url from node server so you don't need to pass access token to client. https://developer.vimeo.com/api/upload/videos#resumable-http-put-uploads

imaksp avatar Jul 30 '16 05:07 imaksp

Any news on this? I encountered the same problem. I need to upload a video via my SPA website. I also get the same error even on production whenever I do a PATCH request. The initial POST /me/videos is working though.

vycoder avatar Nov 08 '18 08:11 vycoder

I tried vimeo_upload and it seems like it's not compatible with latest 3.4 accounts Issue 31. Went back here and found this PR #86. I tested it and it's pretty much solves my problem of uploading videos via my client SPA website.

vycoder avatar Nov 08 '18 11:11 vycoder