花了很多时间试图找出一种方法将动态数据从Jquery传输到我的Python 2.7的SimpleHTTP服务器。我是python的新手,在我去的时候学习。
在网上尝试了许多不同的指南,但我总是遇到同样的错误:[HTTP/1.0 501 Unsupported method ('POST') 4ms]
当我尝试运行以下ajax时:
var data = {
data: JSON.stringify({
"location": location
})
};
$.ajax({
url: "/",
type: 'POST',
contentType: "application/json; charset=utf-8",
dataType: "json",
data: data,
success: function(msg) {
console.log(msg);
}
});
以下是我的Python脚本:
from flask import Flask
from flask_cors import CORS, cross_origin
from flask import request
from flask import render_template
from flask import redirect, url_for
from flask import jsonify
from flask import json
import subprocess
import os
import sys
app = Flask(__name__)
CORS(app)
def do_OPTIONS(self):
self.send_response(200, "ok")
self.send_header('Access-Control-Allow-Origin', '*')
self.send_header('Access-Control-Allow-Methods', 'POST','GET, OPTIONS')
self.send_header("Access-Control-Allow-Headers", "X-Requested-With")
self.send_header("Access-Control-Allow-Headers", "Content-Type")
self.end_headers()
@app.route("/", methods=['POST'])
@cross_origin()
def get_data():
data = json.loads(request.form.get('data'))
location = data['location']
return str(location)
print('Current Location: ' + location)
print('Restarting Server...')
workDir = os.path.dirname(os.path.realpath(sys.argv[0]))
subprocess.Popen([workDir + r'\runMap.bat', location], creationflags = subprocess.CREATE_NEW_CONSOLE)
@app.route('/')
def index():
return render_template('index.html')
return str(location)
print('Current Location: ' + location)
print('Restarting Server...')
workDir = os.path.dirname(os.path.realpath(sys.argv[0]))
subprocess.Popen([workDir + r'\runMap.bat', location], creationflags = subprocess.CREATE_NEW_CONSOLE)
老实说,我觉得我尝试了一切,我试过: 安装Flask-CORS - 什么都不做 我尝试了很多不同的ajax - 没有运气 试试这里的建议 - CORS with python baseHTTPserver 501 (Unsupported method ('OPTIONS')) in chrome
我可能会遗漏一些明显的东西,你觉得我错过了什么?