2017-09-13 7 views
0

Ich habe einen Button auf der Website, um ein PDF herunterladen. Auf Klick, werde ich eine POST API schlagen, die einen Lead erstellt und bei Erfolg auf eine andere URL (pdf-Position) umleitet. Ich verwende hierfür SeeOther Http status (303).Create Siehe Andere Antwort von web api

Wie kann ich 303 Antwort von Web API zurückgeben? Wie man es in jQuery Ajax behandelt?

Aktuelle API Ansatz:

Response.Headers.add("Location", pdfUrl); 
return StatusCode(HttpStstusCode.SeeOther); 

Nicht sicher, wie Ajax-Antwort zu handhaben, wie es in Ajax scheitert Block kommt.

Antwort

0

Dies ist Standardverhalten. Wenn Sie die jQuery source for $.ajax überprüfen, werden Sie sehen, dass ein Antrag als ‚erfolgreich‘ gezählt wird, wenn der HTTP-Statuscode ist:

isSuccess = status >= 200 && status < 300 || status === 304; 

Aus diesem Grund Ihre 303 Antwort in die error Handler wird. Sie müssen entweder die Antwort dort behandeln oder einen anderen HTTP-Antwortcode verwenden.