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:
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!