无法将数据从Jquery ajax(POST)传输到Python

时间:2016-07-23 02:56:21

标签: javascript jquery python ajax

花了很多时间试图找出一种方法将动态数据从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

我可能会遗漏一些明显的东西,你觉得我错过了什么?

0 个答案:

没有答案