Flask中跨域问题无法解决

0 投票
1 回答
1031 浏览
提问于 2025-04-18 01:37

我正在尝试让flask服务器和html页面之间进行一些通信。我按照这里的说明加入了跨域代码 http://flask.pocoo.org/snippets/56/,但还是不行。以下是我的python代码:

from flask import *
from crossdomain import *
app = Flask(__name__)
@app.route('/')
@crossdomain(origin='*')
def pocetna():
    return '1'
if __name__ == '__main__':
    app.run(host='0.0.0.0',port=8081,debug=True)        

这是我的javascript代码:

function prebaci(){
    var xmlhttp;
    xmlhttp=new XMLHttpRequest();
    xmlhttp.onreadystatechange=function()
    {
         if (xmlhttp.readyState==4 && xmlhttp.status==200)
         {
             if (xmlhttp.responseText==1) document.getElementById("kuca").innerHTML="RADI";
             else document.getElementById("kuca").innerHTML="NE RADI";
         }
    }
    xmlhttp.open("GET","127.0.0.1:8081",true);
    xmlhttp.send();
}

在谷歌浏览器中出现的错误是:

XMLHttpRequest cannot load %3127.0.0.1:8081. Cross origin requests are only supported for HTTP.

在火狐浏览器中出现的错误是:

NS_ERROR_DOM_BAD_URI: Access to restricted URI denied 

1 个回答

1

注意这个具体的错误信息,它告诉你你没有连接到一个HTTP服务器;至少Chrome是这么认为的。

你可以试试:

xmlhttp.open("GET","http://127.0.0.1:8081/",true);

比如,使用一个正确格式的网址。

撰写回答