Na stronie serwera, jestem po prostu drukując json-as-słownika do konsoliKolba, jak zwracają kod stanu sukces dla wywołania ajax
@app.route('/',methods=['GET','POST'])
@login_required
def index():
if request.method == "POST":
print request.json.keys()
return "hello world"
Teraz, kiedy robię żądania POST poprzez ajax, konsola wypisuje słownik z zawartością, której potrzebuję.
Po stronie klienta próbowałem użyć różnych metod, aby wykonać jquery na podstawie udanego wywołania ajax. Właśnie zdałem sobie sprawę, że może to być błąd na moim serwerze, tj. Nie wysyłam żadnego nagłówka żądania, aby powiedzieć jquery, że jego wywołanie ajaxa zakończyło się sukcesem.
Jak wysłać status OK do mojego klienta, aby powiedzieć mu, że wszystko jest w porządku?
Dla kompletności, tutaj jest mój kod stronie klienta
$.ajax({
type: 'POST',
contentType: 'application/json',
data: JSON.stringify(myData),
dataType: 'json',
url: '/',
success: function() {
console.log("This is never getting printed!!")
}});
Czy próbowałeś zwrócić poprawny ciąg JSON zamiast zwykłego tekstu 'hello world'? Określasz typ danych zwrotnych json, ale jquery prawdopodobnie nie może dekodować "hello world", więc funkcja success nigdy nie jest wywoływana. –
@PeterGibson "Witaj świecie" jest zwracany na żądanie GET. Nie zwracam niczego na POST. – yayu
@PeterGibson, który był rzeczywiście problemem. Położyłem "powrót" OK'' i jego działanie teraz. Możesz przesłać odpowiedź, jeśli chcesz. – yayu