Я отчасти новичок в Python, но у меня была такая же проблема, что и с Node приложениями. Я делаю довольно стандартный запрос jQuery AJAX для моего локального Python:
init: function(callback) {
var token = _config.get_token();
$.ajax({
url: 'http://localhost:5000/api/ia/v1/user_likes',
type: 'POST',
contentType: 'application/json',
datatype: 'json',
data: token
})
.done(function(data) {
callback(data);
})
.fail(function(err) {
callback(err);
});
callback(token);
}
Я могу подтвердить, что токен переменной подтверждается следующим образом:
Object {access_token: "791415154.2c0a5f7.4d707361de394512a29682f9cb2d2846", campaign_id: "102"}
Но я получаю эту ошибку с моей консоли javascript:
XMLHttpRequest cannot load http://localhost:5000/api/ia/v1/user_likes. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://s3.amazonaws.com' is therefore not allowed access. The response had HTTP status code 500.
Я обнаружил, что когда я создаю Node приложения, это ошибка cors. Страница, на которой я запускаю запрос JQuery AJAX, - http. Вот часть моего кода на Python, который, как я полагаю, неправильно настроен:
from flask import Flask, request, redirect
from flask.ext.cors import CORS, cross_origin
app = Flask(__name__)
cors = CORS(app)
app.config['CORS_HEADERS'] = 'application/json'
И маршрут:
@app.route("/api/ia/v1/user_likes", methods=['POST', 'OPTIONS'])
def user_likes():
validate = validate_request(request.data)
return 'something'
Ошибка My Python также возвращает ошибку, потому что запрос никогда не попадает в эту строку кода:
def validate_request(object_from_user):
load_object = json.loads(object_from_user)
Я могу это исправить позже. В любом случае, есть ли у кого-нибудь предложения по настройке Cors для Python?