如何从 FormData 设置包装数据?
How can I set wrapper data from a FormData?
如何从 FormData 设置包装器数据?
我在 Rails 中使用 CarrierWave。
我正在从 ajax.
调用 WebAPI
此命令已成功。
curl -X POST \
https://site-url/api/books/ \
-H 'cache-control: no-cache' \
-H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \
-F 'book[title]=test' \
-F book[image]=@kindle_3_0_library_ipad_iphone.jpg \
-F 'book[genre_id]=1'
这是当时的development.log
Parameters: {"book"=>{"title"=>"test", "image"=>#<ActionDispatch::Http::UploadedFile:0x0000000005f1d790 @tempfile=#<Tempfile:/tmp/RackMultipart20181016-37646-65mtjc.jpg>, @original_filename="kindle_3_0_library_ipad_iphone.jpg", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"book[image]\"; filename=\"kindle_3_0_library_ipad_iphone.jpg\"\r\nContent-Type: image/jpeg\r\n">, "genre_id"=>"1"}}
此代码失败。
var request = new FormData();
request.append('title', title);
request.append('image', imageFile, imageFile.name);
request.append('genre_id', 1);
这是当时的development.log
Parameters: {"title"=>"test", "image"=>#<ActionDispatch::Http::UploadedFile:0x00007f01dc083240 @tempfile=#<Tempfile:/tmp/RackMultipart20181016-37646-3zmceu.jpg>, @original_filename="41fQlZLtDgL._SX337_BO1,204,203,200_.jpg", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"image\"; filename=\"41fQlZLtDgL._SX337_BO1,204,203,200_.jpg\"\r\nContent-Type: image/jpeg\r\n">, "genre_id"=>"1"}
其他人试过这个。
var request = new Object();
request.book = new FormData();
request.book.append('title', title);
request.book.append('image', imageFile, imageFile.name);
request.book.append('genre_id', 1);
这是当时的development.log
Parameters: {"object Object"=>nil}
不知道怎么设置可以保存的参数
谢谢
表单数据应该有 header 和 multipart/form-data
。
const formData = new FormData();
const config = {
headers: {
'content-type': 'multipart/form-data'
}
}
axios.post("/URL", formData, config)
.then(...)
这个 link 也是关于那个,完全不同的问题。
ActiveStorage and Image upload
此问题已解决。
request.append('book[title]', title);
如何从 FormData 设置包装器数据?
我在 Rails 中使用 CarrierWave。
我正在从 ajax.
此命令已成功。
curl -X POST \
https://site-url/api/books/ \
-H 'cache-control: no-cache' \
-H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \
-F 'book[title]=test' \
-F book[image]=@kindle_3_0_library_ipad_iphone.jpg \
-F 'book[genre_id]=1'
这是当时的development.log
Parameters: {"book"=>{"title"=>"test", "image"=>#<ActionDispatch::Http::UploadedFile:0x0000000005f1d790 @tempfile=#<Tempfile:/tmp/RackMultipart20181016-37646-65mtjc.jpg>, @original_filename="kindle_3_0_library_ipad_iphone.jpg", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"book[image]\"; filename=\"kindle_3_0_library_ipad_iphone.jpg\"\r\nContent-Type: image/jpeg\r\n">, "genre_id"=>"1"}}
此代码失败。
var request = new FormData();
request.append('title', title);
request.append('image', imageFile, imageFile.name);
request.append('genre_id', 1);
这是当时的development.log
Parameters: {"title"=>"test", "image"=>#<ActionDispatch::Http::UploadedFile:0x00007f01dc083240 @tempfile=#<Tempfile:/tmp/RackMultipart20181016-37646-3zmceu.jpg>, @original_filename="41fQlZLtDgL._SX337_BO1,204,203,200_.jpg", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"image\"; filename=\"41fQlZLtDgL._SX337_BO1,204,203,200_.jpg\"\r\nContent-Type: image/jpeg\r\n">, "genre_id"=>"1"}
其他人试过这个。
var request = new Object();
request.book = new FormData();
request.book.append('title', title);
request.book.append('image', imageFile, imageFile.name);
request.book.append('genre_id', 1);
这是当时的development.log
Parameters: {"object Object"=>nil}
不知道怎么设置可以保存的参数
谢谢
表单数据应该有 header 和 multipart/form-data
。
const formData = new FormData();
const config = {
headers: {
'content-type': 'multipart/form-data'
}
}
axios.post("/URL", formData, config)
.then(...)
这个 link 也是关于那个,完全不同的问题。 ActiveStorage and Image upload
此问题已解决。
request.append('book[title]', title);