Comments (7)
I came to this need today and this is how I did it. cljs-http
use XhrIo
which accept FormData
as request's body.
(defn generate-form-data [params]
(let [form-data (js/FormData.)]
(doseq [[k v] params]
(.append form-data (name k) v))
form-data))
(defn upload [file]
(go (let [response (<! (http/post "http://localhost/upload"
{:body (generate-form-data {:file file})}))]
(prn (:status response))
(prn (:body response)))))
;; some-dom-element is a single file upload input
;; <input type="file">
(upload (-> some-dom-element .-files first))
Btw, I can't write unit test for this because js/FormData
only has .append method so there's no way to check what values it is holding
Do you want to support this, @r0man ? I'll make a PR then
from cljs-http.
Ah, so it's already possible to upload files using cljs-http
, it's just a matter of putting the FormData
object in the :body
. Thanks @myguidingstar .
from cljs-http.
@myguidingstar perhaps it's worth just PR'ing a new section in the readme, so that it's easy for new folks to find?
from cljs-http.
I think this should be included in API, as Ring has a middleware for that. Just made an PR
#37
from cljs-http.
Hi guys,
I'm trying to send multipart data to server, but I'm getting back the following error:
org.apache.commons.fileupload.FileUploadException: the request was rejected because no multipart boundary was found
I use Ring and wrap-multipart-params
middleware on the server side. Problem is that client is not setting boundary
as part of the Content-Type
header.
My code to send data to server looks like this:
(client/request {:method :post :url "url" :multipart-params {:ke1 "value1" :ke2 "value2"}})
Have you guys any idea how to could I fix this problem?
from cljs-http.
@r0man can you please have a look at this pull request #51?
I removed explicit setting of content-type
for multipart body so browser can set it to correct value. Something like
Content-Type: multipart/form-data;boundary=------FormBoundary14c28f17597
from cljs-http.
@r0man also close this one since PRs have fixed it? :p
from cljs-http.
Related Issues (20)
- How to decode an http/get transit json response to a edn? HOT 3
- previewing a request before it gets sent HOT 1
- Error handling when server sends invalid json HOT 18
- A request that should return an HTTP 405 instead returns status 0 HOT 3
- GET request URL string with multiple values for one parameter HOT 5
- Unit test failing HOT 3
- Struggling with CORS post request to compojure / ring backend using ring.core / cljs-http... HOT 8
- Response body flattens `schema` object HOT 1
- Binary response data gets mangled HOT 2
- react native support HOT 1
- The custom channel seems doesn't work HOT 3
- jsonp throws exception due to goog.net.Jsonp api changes HOT 3
- README probably has a typo
- jsonp call results in error: TypeError: this.uri_.cloneWithParams is not a function at goog.net.Jsonp.send HOT 8
- Why would the cljs-http.client request be blocked by the cors policy if the clj-http.client request isn't? HOT 1
- Improve README to describe core functionality.
- Uncaught ReferenceError: cljs_http is not defined HOT 2
- Binary data doesn't seem to be included with multipart post? HOT 1
- Mangled JSON replies HOT 2
- Function redefinition warnings with Clojure/Script 1.11 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cljs-http.