jquery – 如何在烧瓶和heroku中启用CORS

我试图使用 jquery做一个十字架请求,但是它一直被拒绝与消息

XMLHttpRequest cannot load http://… No ‘Access-Control-Allow-Origin’
header is present on the requested resource. Origin … is therefore
not allowed access.

我正在使用烧瓶,英雄和jquery

客户端代码如下所示:

$(document).ready(function() {
    $('#submit_contact').click(function(e){
        e.preventDefault();
        $.ajax({
            type: 'POST',url: 'http://...',// data: [
            //      { name: "name",value: $('name').val()},//      { name: "email",value: $('email').val() },//      { name: "phone",value: $('phone').val()},//      { name: "description",value: $('desc').val()}
            //
            // ],data:"name=3&email=3&phone=3&description=3",crossDomain:true,success: function(msg) {
                alert(msg);
            }
        });
    }); 
});

在英雄方面我正在使用烧瓶,就像这样

from flask import Flask,request
from flask.ext.mandrill import Mandrill
try:
    from flask.ext.cors import CORS  # The typical way to import flask-cors
except ImportError:
    # Path hack allows examples to be run without installation.
    import os
    parentdir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    os.sys.path.insert(0,parentdir)

    from flask.ext.cors import CORS
app = Flask(__name__)

app.config['MANDRILL_API_KEY'] = '...'
app.config['MANDRILL_DEFAULT_FROM']= '...'
app.config['QOLD_SUPPORT_EMAIL']='...'
app.config['CORS_HEADERS'] = 'Content-Type'

mandrill = Mandrill(app)
cors = CORS(app)

@app.route('/email/',methods=['POST'])
def hello_world():
    name=request.form['name']
    email=request.form['email']
    phone=request.form['phone']
    description=request.form['description']

    mandrill.send_email(
        from_email=email,from_name=name,to=[{'email': app.config['QOLD_SUPPORT_EMAIL']}],text="Phone="+phone+"\n\n"+description
    )

    return '200 OK'

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

解决方法

当我部署到Heroku时,这是对我有用的.

http://flask-cors.readthedocs.org/en/latest/

$pip install -U flask-cors

from flask import Flask
from flask.ext.cors import CORS,cross_origin
app = Flask(__name__)
cors = CORS(app)
app.config['CORS_HEADERS'] = 'Content-Type'

@app.route("/")
@cross_origin()
def helloWorld():
  return "Hello,cross-origin-world!"

相关文章

jQuery插件的种类 1、封装对象方法 这种插件是将对象方法封装起来,用于对通过选择器获取的jQuery对象进...
扩展jQuery插件和方法的作用是非常强大的,它可以节省大量开发时间。 入门 编写一个jQuery插件开始于给...
最近项目中需要实现3D图片层叠旋转木马切换的效果,于是用到了jquery.roundabout.js。 兼容性如图: ht...
一、什么是deferred对象? 开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异...
AMD 模块 AMD(异步模块定义,Asynchronous Module Definition)格式总体的目标是为现在的开发者提供一...