How to make my HTTP request behave the same as a formJavaScript post request like a form submitHow to manage a redirect request after a jQuery Ajax callHTTP GET request in JavaScript?How can I make a time delay in Python?How to make a chain of function decorators?How to make a flat list out of list of listsHow do I make the first letter of a string uppercase in JavaScript?Cannot display HTML stringHow do you add an enctype attribute to a FormData() object?Jersey unsupported media type while using @FormDataParam
Responsibility for visa checking
How were concentration and extermination camp guards recruited?
How to split a string in two substrings of same length using bash?
Why do guitarists wave their guitars?
What is a simple, physical situation where complex numbers emerge naturally?
How to make a setting relevant?
What is the right way to float a home lab?
Replace only 2nd, 3rd, nth...character and onwards
Metal bar on DMM PCB
1980s (or earlier) book where people live a long time but they have short memories
Explain Ant-Man's "not it" scene from Avengers: Endgame
Building a road to escape Earth's gravity by making a pyramid on Antartica
Can you please explain this joke: "I'm going bananas is what I tell my bananas before I leave the house"?
Is the decompression of compressed and encrypted data without decryption also theoretically impossible?
Opposite of "Squeaky wheel gets the grease"
What happens if you do emergency landing on a US base in middle of the ocean?
Secure offsite backup, even in the case of hacker root access
Does any lore text explain why the planes of Acheron, Gehenna, and Carceri are the alignment they are?
Did thousands of women die every year due to illegal abortions before Roe v. Wade?
Does the growth of home value benefit from compound interest?
What happens to foam insulation board after you pour concrete slab?
What does War Machine's "Canopy! Canopy!" line mean in "Avengers: Endgame"?
Wiring from Main to Subpanel
Shrink exponential fraction argument
How to make my HTTP request behave the same as a form
JavaScript post request like a form submitHow to manage a redirect request after a jQuery Ajax callHTTP GET request in JavaScript?How can I make a time delay in Python?How to make a chain of function decorators?How to make a flat list out of list of listsHow do I make the first letter of a string uppercase in JavaScript?Cannot display HTML stringHow do you add an enctype attribute to a FormData() object?Jersey unsupported media type while using @FormDataParam
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;
I'd need some help with my HTTP request. Here's the setup:
- A webpage load an image to a form and send it to a python server running bottle (with the form or a custom http request)
- Bottle receive the file, give it as an input for a python script, receive the result and return it to the webpage
On bottle's website there's an example with a form: https://bottlepy.org/docs/dev/tutorial.html#file-uploads I've tried it and it works. Here's the code I used:
<html>
<head>
</head>
<body>
<form action="http://localhost:8080/solve" method="POST" enctype="multipart/form-data" norm="form" id='myForm'>
Select a file: <input type="file" name="upload"/>
<input type="submit" value="Start upload" />
</form>
</body>
</html>
In bottle I have:
@route('/solve', method='POST')
def solve():
file = request.files.get('upload')
name, ext = os.path.splitext(file.filename)
if ext not in ('.png','.jpg','.jpeg'):
return 'File extension not allowed.'
print(file.name)
resolved = sudoku.solve(file.file)
return str(resolved)
This "works", but the form redirects me to localhost:8080 and it's not what I want. I tried putting the target to a hidden iFrame, which prevent the redirection, but I don't manage to access the result in the body of the iFrame...
What I want: Make an HTTP request similar to the one made by the form. So I tried:
<html>
<head> </head>
<body>
<form enctype="multipart/form-data" norm="form" id="myForm">
Select a file:
<input id="fileInput" type="file" name="upload" accept="image/png, image/jpeg, image/jpg" />
<input type="submit" value="Start upload" />
<label class="button-upload" onclick="send()">Upload</label>
</form>
</body>
<script>
var _file = null;
function send()
var file = document.getElementById("fileInput").files[0]
console.log(file)
var url = "http://localhost:8080/solve";
var xhr = new XMLHttpRequest();
xhr.open("POST", url, true);
xhr.setRequestHeader(
"Content-Type",
"multipart/form-data; boundary=---------------------------169461201884497922237853436"
);
var formData = new FormData();
xhr.onreadystatechange = function()
if (xhr.readyState == 4 && xhr.status == 200)
alert(xhr.responseText);
;
formData.append("upload", file);
xhr.send(formData);
</script>
</html>
I've checked with the developper tool in network and the request seems to be the same as the one sent by the form, though bottle can't find the file.
The file = request.files.get('upload')
returns None
and file = request.files
returns <bottle.FormsDict object at 0x7ff437abf400>
so there's something but I don't understand how to access it!
Any help would be greatly appreciated!
javascript python file-upload xmlhttprequest bottle
add a comment |
I'd need some help with my HTTP request. Here's the setup:
- A webpage load an image to a form and send it to a python server running bottle (with the form or a custom http request)
- Bottle receive the file, give it as an input for a python script, receive the result and return it to the webpage
On bottle's website there's an example with a form: https://bottlepy.org/docs/dev/tutorial.html#file-uploads I've tried it and it works. Here's the code I used:
<html>
<head>
</head>
<body>
<form action="http://localhost:8080/solve" method="POST" enctype="multipart/form-data" norm="form" id='myForm'>
Select a file: <input type="file" name="upload"/>
<input type="submit" value="Start upload" />
</form>
</body>
</html>
In bottle I have:
@route('/solve', method='POST')
def solve():
file = request.files.get('upload')
name, ext = os.path.splitext(file.filename)
if ext not in ('.png','.jpg','.jpeg'):
return 'File extension not allowed.'
print(file.name)
resolved = sudoku.solve(file.file)
return str(resolved)
This "works", but the form redirects me to localhost:8080 and it's not what I want. I tried putting the target to a hidden iFrame, which prevent the redirection, but I don't manage to access the result in the body of the iFrame...
What I want: Make an HTTP request similar to the one made by the form. So I tried:
<html>
<head> </head>
<body>
<form enctype="multipart/form-data" norm="form" id="myForm">
Select a file:
<input id="fileInput" type="file" name="upload" accept="image/png, image/jpeg, image/jpg" />
<input type="submit" value="Start upload" />
<label class="button-upload" onclick="send()">Upload</label>
</form>
</body>
<script>
var _file = null;
function send()
var file = document.getElementById("fileInput").files[0]
console.log(file)
var url = "http://localhost:8080/solve";
var xhr = new XMLHttpRequest();
xhr.open("POST", url, true);
xhr.setRequestHeader(
"Content-Type",
"multipart/form-data; boundary=---------------------------169461201884497922237853436"
);
var formData = new FormData();
xhr.onreadystatechange = function()
if (xhr.readyState == 4 && xhr.status == 200)
alert(xhr.responseText);
;
formData.append("upload", file);
xhr.send(formData);
</script>
</html>
I've checked with the developper tool in network and the request seems to be the same as the one sent by the form, though bottle can't find the file.
The file = request.files.get('upload')
returns None
and file = request.files
returns <bottle.FormsDict object at 0x7ff437abf400>
so there's something but I don't understand how to access it!
Any help would be greatly appreciated!
javascript python file-upload xmlhttprequest bottle
add a comment |
I'd need some help with my HTTP request. Here's the setup:
- A webpage load an image to a form and send it to a python server running bottle (with the form or a custom http request)
- Bottle receive the file, give it as an input for a python script, receive the result and return it to the webpage
On bottle's website there's an example with a form: https://bottlepy.org/docs/dev/tutorial.html#file-uploads I've tried it and it works. Here's the code I used:
<html>
<head>
</head>
<body>
<form action="http://localhost:8080/solve" method="POST" enctype="multipart/form-data" norm="form" id='myForm'>
Select a file: <input type="file" name="upload"/>
<input type="submit" value="Start upload" />
</form>
</body>
</html>
In bottle I have:
@route('/solve', method='POST')
def solve():
file = request.files.get('upload')
name, ext = os.path.splitext(file.filename)
if ext not in ('.png','.jpg','.jpeg'):
return 'File extension not allowed.'
print(file.name)
resolved = sudoku.solve(file.file)
return str(resolved)
This "works", but the form redirects me to localhost:8080 and it's not what I want. I tried putting the target to a hidden iFrame, which prevent the redirection, but I don't manage to access the result in the body of the iFrame...
What I want: Make an HTTP request similar to the one made by the form. So I tried:
<html>
<head> </head>
<body>
<form enctype="multipart/form-data" norm="form" id="myForm">
Select a file:
<input id="fileInput" type="file" name="upload" accept="image/png, image/jpeg, image/jpg" />
<input type="submit" value="Start upload" />
<label class="button-upload" onclick="send()">Upload</label>
</form>
</body>
<script>
var _file = null;
function send()
var file = document.getElementById("fileInput").files[0]
console.log(file)
var url = "http://localhost:8080/solve";
var xhr = new XMLHttpRequest();
xhr.open("POST", url, true);
xhr.setRequestHeader(
"Content-Type",
"multipart/form-data; boundary=---------------------------169461201884497922237853436"
);
var formData = new FormData();
xhr.onreadystatechange = function()
if (xhr.readyState == 4 && xhr.status == 200)
alert(xhr.responseText);
;
formData.append("upload", file);
xhr.send(formData);
</script>
</html>
I've checked with the developper tool in network and the request seems to be the same as the one sent by the form, though bottle can't find the file.
The file = request.files.get('upload')
returns None
and file = request.files
returns <bottle.FormsDict object at 0x7ff437abf400>
so there's something but I don't understand how to access it!
Any help would be greatly appreciated!
javascript python file-upload xmlhttprequest bottle
I'd need some help with my HTTP request. Here's the setup:
- A webpage load an image to a form and send it to a python server running bottle (with the form or a custom http request)
- Bottle receive the file, give it as an input for a python script, receive the result and return it to the webpage
On bottle's website there's an example with a form: https://bottlepy.org/docs/dev/tutorial.html#file-uploads I've tried it and it works. Here's the code I used:
<html>
<head>
</head>
<body>
<form action="http://localhost:8080/solve" method="POST" enctype="multipart/form-data" norm="form" id='myForm'>
Select a file: <input type="file" name="upload"/>
<input type="submit" value="Start upload" />
</form>
</body>
</html>
In bottle I have:
@route('/solve', method='POST')
def solve():
file = request.files.get('upload')
name, ext = os.path.splitext(file.filename)
if ext not in ('.png','.jpg','.jpeg'):
return 'File extension not allowed.'
print(file.name)
resolved = sudoku.solve(file.file)
return str(resolved)
This "works", but the form redirects me to localhost:8080 and it's not what I want. I tried putting the target to a hidden iFrame, which prevent the redirection, but I don't manage to access the result in the body of the iFrame...
What I want: Make an HTTP request similar to the one made by the form. So I tried:
<html>
<head> </head>
<body>
<form enctype="multipart/form-data" norm="form" id="myForm">
Select a file:
<input id="fileInput" type="file" name="upload" accept="image/png, image/jpeg, image/jpg" />
<input type="submit" value="Start upload" />
<label class="button-upload" onclick="send()">Upload</label>
</form>
</body>
<script>
var _file = null;
function send()
var file = document.getElementById("fileInput").files[0]
console.log(file)
var url = "http://localhost:8080/solve";
var xhr = new XMLHttpRequest();
xhr.open("POST", url, true);
xhr.setRequestHeader(
"Content-Type",
"multipart/form-data; boundary=---------------------------169461201884497922237853436"
);
var formData = new FormData();
xhr.onreadystatechange = function()
if (xhr.readyState == 4 && xhr.status == 200)
alert(xhr.responseText);
;
formData.append("upload", file);
xhr.send(formData);
</script>
</html>
I've checked with the developper tool in network and the request seems to be the same as the one sent by the form, though bottle can't find the file.
The file = request.files.get('upload')
returns None
and file = request.files
returns <bottle.FormsDict object at 0x7ff437abf400>
so there's something but I don't understand how to access it!
Any help would be greatly appreciated!
<html>
<head>
</head>
<body>
<form action="http://localhost:8080/solve" method="POST" enctype="multipart/form-data" norm="form" id='myForm'>
Select a file: <input type="file" name="upload"/>
<input type="submit" value="Start upload" />
</form>
</body>
</html>
<html>
<head>
</head>
<body>
<form action="http://localhost:8080/solve" method="POST" enctype="multipart/form-data" norm="form" id='myForm'>
Select a file: <input type="file" name="upload"/>
<input type="submit" value="Start upload" />
</form>
</body>
</html>
<html>
<head> </head>
<body>
<form enctype="multipart/form-data" norm="form" id="myForm">
Select a file:
<input id="fileInput" type="file" name="upload" accept="image/png, image/jpeg, image/jpg" />
<input type="submit" value="Start upload" />
<label class="button-upload" onclick="send()">Upload</label>
</form>
</body>
<script>
var _file = null;
function send()
var file = document.getElementById("fileInput").files[0]
console.log(file)
var url = "http://localhost:8080/solve";
var xhr = new XMLHttpRequest();
xhr.open("POST", url, true);
xhr.setRequestHeader(
"Content-Type",
"multipart/form-data; boundary=---------------------------169461201884497922237853436"
);
var formData = new FormData();
xhr.onreadystatechange = function()
if (xhr.readyState == 4 && xhr.status == 200)
alert(xhr.responseText);
;
formData.append("upload", file);
xhr.send(formData);
</script>
</html>
<html>
<head> </head>
<body>
<form enctype="multipart/form-data" norm="form" id="myForm">
Select a file:
<input id="fileInput" type="file" name="upload" accept="image/png, image/jpeg, image/jpg" />
<input type="submit" value="Start upload" />
<label class="button-upload" onclick="send()">Upload</label>
</form>
</body>
<script>
var _file = null;
function send()
var file = document.getElementById("fileInput").files[0]
console.log(file)
var url = "http://localhost:8080/solve";
var xhr = new XMLHttpRequest();
xhr.open("POST", url, true);
xhr.setRequestHeader(
"Content-Type",
"multipart/form-data; boundary=---------------------------169461201884497922237853436"
);
var formData = new FormData();
xhr.onreadystatechange = function()
if (xhr.readyState == 4 && xhr.status == 200)
alert(xhr.responseText);
;
formData.append("upload", file);
xhr.send(formData);
</script>
</html>
javascript python file-upload xmlhttprequest bottle
javascript python file-upload xmlhttprequest bottle
asked Mar 24 at 13:05
Victor MeunierVictor Meunier
177
177
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
Your JavaScript code seems fine, except for where you set request headers with xhr.setRequestHeader
. FormData
handles multipart encoding for you, you don't need to set request headers manually. I just tried it, and it seems to be working fine with bottlepy.
Overall, change your send()
function as follows:
function send()
var file = document.getElementById("fileInput").files[0]
console.log(file)
var url = "http://localhost:8080/solve";
var xhr = new XMLHttpRequest();
xhr.open("POST", url, true);
var formData = new FormData();
xhr.onreadystatechange = function()
if (xhr.readyState == 4 && xhr.status == 200)
alert(xhr.responseText);
;
formData.append("upload", file);
xhr.send(formData);
Thank you it worked well, can't believe it was that simple..
– Victor Meunier
Mar 24 at 18:07
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55324087%2fhow-to-make-my-http-request-behave-the-same-as-a-form%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Your JavaScript code seems fine, except for where you set request headers with xhr.setRequestHeader
. FormData
handles multipart encoding for you, you don't need to set request headers manually. I just tried it, and it seems to be working fine with bottlepy.
Overall, change your send()
function as follows:
function send()
var file = document.getElementById("fileInput").files[0]
console.log(file)
var url = "http://localhost:8080/solve";
var xhr = new XMLHttpRequest();
xhr.open("POST", url, true);
var formData = new FormData();
xhr.onreadystatechange = function()
if (xhr.readyState == 4 && xhr.status == 200)
alert(xhr.responseText);
;
formData.append("upload", file);
xhr.send(formData);
Thank you it worked well, can't believe it was that simple..
– Victor Meunier
Mar 24 at 18:07
add a comment |
Your JavaScript code seems fine, except for where you set request headers with xhr.setRequestHeader
. FormData
handles multipart encoding for you, you don't need to set request headers manually. I just tried it, and it seems to be working fine with bottlepy.
Overall, change your send()
function as follows:
function send()
var file = document.getElementById("fileInput").files[0]
console.log(file)
var url = "http://localhost:8080/solve";
var xhr = new XMLHttpRequest();
xhr.open("POST", url, true);
var formData = new FormData();
xhr.onreadystatechange = function()
if (xhr.readyState == 4 && xhr.status == 200)
alert(xhr.responseText);
;
formData.append("upload", file);
xhr.send(formData);
Thank you it worked well, can't believe it was that simple..
– Victor Meunier
Mar 24 at 18:07
add a comment |
Your JavaScript code seems fine, except for where you set request headers with xhr.setRequestHeader
. FormData
handles multipart encoding for you, you don't need to set request headers manually. I just tried it, and it seems to be working fine with bottlepy.
Overall, change your send()
function as follows:
function send()
var file = document.getElementById("fileInput").files[0]
console.log(file)
var url = "http://localhost:8080/solve";
var xhr = new XMLHttpRequest();
xhr.open("POST", url, true);
var formData = new FormData();
xhr.onreadystatechange = function()
if (xhr.readyState == 4 && xhr.status == 200)
alert(xhr.responseText);
;
formData.append("upload", file);
xhr.send(formData);
Your JavaScript code seems fine, except for where you set request headers with xhr.setRequestHeader
. FormData
handles multipart encoding for you, you don't need to set request headers manually. I just tried it, and it seems to be working fine with bottlepy.
Overall, change your send()
function as follows:
function send()
var file = document.getElementById("fileInput").files[0]
console.log(file)
var url = "http://localhost:8080/solve";
var xhr = new XMLHttpRequest();
xhr.open("POST", url, true);
var formData = new FormData();
xhr.onreadystatechange = function()
if (xhr.readyState == 4 && xhr.status == 200)
alert(xhr.responseText);
;
formData.append("upload", file);
xhr.send(formData);
answered Mar 24 at 14:14
SumitSumit
1,0931627
1,0931627
Thank you it worked well, can't believe it was that simple..
– Victor Meunier
Mar 24 at 18:07
add a comment |
Thank you it worked well, can't believe it was that simple..
– Victor Meunier
Mar 24 at 18:07
Thank you it worked well, can't believe it was that simple..
– Victor Meunier
Mar 24 at 18:07
Thank you it worked well, can't believe it was that simple..
– Victor Meunier
Mar 24 at 18:07
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55324087%2fhow-to-make-my-http-request-behave-the-same-as-a-form%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown