I am having some problems about using ajax to submit a html input form, and it seems like something is wrong with the datatype
.
The background:
- sending an input form from
app engine
to aws
- creating a
pdf
file on aws
, saving it on s3
, and sending back the hyperlink to app engine
- on
app engine
side, generating a html page with the hyperlink
- if the ajax call is successful, redirect to the page created on
Step 3
Input form:
<form id="pdf_post">
<table class="getpdf popup">
<!-- contents include 1. string type html table and jqplots -->
</table>
</form>
Ajax call:
$(document).ajaxStart(function(){
alert('start');
});
$.ajax({
type: "post",
url: "/pdf.html",
data: $('#pdf_post').serialize(),
dataType: "html",
success: function () {
alert('success');
window.location = "/pdf.html";
},
error: function (data) {
console.log(data)
alert('error');
},
});
Based on the ajax
call, my browser will be redirected to a page with hyperlink. But this never happened, and the results are related to values in the dataType
:
dataType: "html"
, ajax
success fired, but I got error msg: 405 Method Not Allowed The method GET is not allowed for this resource.
dataType: "json"
, ajax
error fired
dataType: "data"
, ajax
error fired
I have checked the server side, it seem like a pdf was always generated no matter what dataType I selected. Also when ajax error
was fired, from the console.log(data)
, I can see the webpage with the correct hyperlink. Can anyone give me some suggestions? Thanks!
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…