简易Flask应用出现Connection Reset问题,寻求技术解决方案
Hey there, let's work through that connection reset issue in your Flask + AJAX app. I see a few potential fixes based on the code you shared:
1. Fix Incomplete AJAX Code
Your AJAX snippet cuts off at aler...—that's a typo (should be alert) and you're missing the actual request logic to hit your Flask route. An incomplete or broken AJAX call can easily cause unexpected connection drops. Here's a full, working version:
$('.check-grammer').click(function(e) { e.preventDefault(); const text = $('#exampleTextarea').val(); if (text === '') { alert('Please enter some text first!'); return; } $.ajax({ url: '/check_grammer', type: 'POST', data: { text: text }, success: function(response) { console.log('Got response:', response); // Add your logic to display grammar check results here }, error: function(xhr, status, error) { console.error('Request failed:', error); alert('Oops, something went wrong checking grammar.'); } }); });
2. Improve Flask Route Handling
Right now your /check_grammer route only returns the request method, which doesn't give the frontend useful data. Let's adjust it to handle POST data properly and return a JSON response (AJAX works much smoother with JSON than plain text):
from flask import Flask, render_template, request, jsonify app = Flask(__name__) @app.route('/') def hello_world(): return render_template('smart_writer.html') @app.route('/check_grammer', methods=["GET", "POST"]) def check_grammer(): if request.method == 'POST': input_text = request.form.get('text', '') # Replace this mock logic with your actual grammar checking code mock_result = { 'original_text': input_text, 'corrected_text': input_text.replace('grammer', 'grammar'), 'issues': ['Spelling: "grammer" should be "grammar"'] if 'grammer' in input_text else [] } return jsonify(mock_result) return jsonify({'message': 'Use POST to submit text for grammar check'}) if __name__ == '__main__': app.run(host='0.0.0.0', port=5000, debug=True)
3. Rule Out Network/Firewall Issues
- If testing locally, try accessing
http://localhost:5000instead of the0.0.0.0IP—sometimes binding to all interfaces can cause minor connection quirks. - Double-check that port 5000 isn't blocked by your firewall or being used by another application.
- Temporarily disable debug mode (
debug=False)—the auto-reloader in debug mode can occasionally trigger connection resets when the app reloads.
4. Verify Template Setup
Make sure your smart_writer.html has all the required elements:
- Include jQuery before your script (since you're using
$for AJAX):<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> - Confirm your button has the class
check-grammerand your textarea has the IDexampleTextarea—mismatched selectors will break the AJAX trigger entirely.
Give these fixes a shot, and the connection reset issue should clear up!
内容的提问来源于stack exchange,提问作者Imesh Chandrasiri

