2014-09-14 2 views
1

Я научился использовать колбу-питон для дополнения angularJS. Это то, что я есть на колбе:AngularJS с проверкой флакона python

#!flask/bin/python 
from flask import Flask, jsonify 

app = Flask(__name__) 

@app.route('/hola', methods=['GET']) 
def get_tasks(): 
    x="pepepepep" 
    return jsonify({'msj': x}) 

if __name__ == '__main__': 
    app.run(debug=True) 

когда я открываю в браузере:

http://127.0.0.1:5000/hola 

я действительно вижу объект JSON с этим случайным сообщением. Теперь, когда я иду angularJS, это то, что я есть на контроллере:

function ControladorPrueba($scope,$http) { 

    $scope.mensaje="i"; 
    $scope.ObtenerMsj= function(){ 

    $http.get('http://localhost:5000/hola') 

     .success(function(data){ 
     $scope.mensaje=data.msj; 
     }) 
     .error(function(data,status){ 
     $scope.mensaje = status; 
     }); 
    }; 
} 

Проблема заключается в том, что, когда эта функция выполняется, получить всегда идут на .error (...), любые идеи почему это происходит, даже когда обслуживание в фляге хорошо работает при открытии в браузере? я что-то упускаю? Любая помощь приветствуется. Благодаря!

ответ

0

Я подозреваю, что это может быть связано с Same-origin policy. Если вы используете приложение Flask на локальном хосте, и если вы используете файлы Angularjs по отдельности (например, используя протокол file:///), тогда браузер действительно запретит вашему Angular code разговаривать с веб-сервисом по соображениям безопасности.

Если это так, у вас есть два решения. Вы можете либо начать работу с вашими файлами HTML/CSS/Javascript из вашего приложения Flask, либо с помощью чего-то вроде Flask-Cors, чтобы явно настроить сервер для разрешения внешних запросов.

+0

спасибо большое. это было именно так! – CDS18