2016-05-06 2 views
1

私のフラスコAPI(Herokuでホストされています)に電話をかけようとしています。 URLバーにURLを置くと動作しますが、jqueryで実装すると失敗します。CORSのためにHerokuのFlask APIにアクセスできない問題

私は先に行って、flask-corsをインストールし、以下を追加しました:

app = Flask(__name__) 
cors = CORS(app) 

@app.route("/") 
@cross_origin() 
def home(): 
    return jsonify({"results":{}}) 

私がしなければならない何か他のものはありますか?私はまた私の要求に次のようでした:

function fetchResults(requestURL, callback) { 

    var xmlHttp = new XMLHttpRequest(); 
    xmlHttp.onreadystatechange = function() { 
     if (xmlHttp.readyState === 4) { 
      if (xmlHttp.status === 200) { 
       callback(xmlHttp.responseText); 
      } else { 
       console.error("Error: " + xmlHttp.status + xmlHttp.statusText); 
      } 
     } 
    } 

    //Make Async GET Request 
    xmlHttp.open("GET", requestURL, true); 
    xmlHttp.setRequestHeader('Access-Control-Allow-Origin', '*'); 
    xmlHttp.send(null); 
}   

答えて

0

Access-Control-Allow-Originは、あなたが回答ではないリクエストに設定する必要がありますヘッダーです。 cross_originはこれを行います。

あなたはjQueryのを使用する場合だけ使用します。

$.ajax({ 
    url: ..., 
    ...., 
    crossDomain: true 
}) 
+0

おかげMehdyを。しかし、私はxmlhttprequest(私は私の完全なJavaScript関数を投稿した)を使用したいと思います。私はあなたが提案したようにリクエストからヘッダを削除しましたが、私はまだログされている同じ問題を見ています: 'リソースを読み込めませんでした:ヌルからのリクエストはできません。 ' – KingPolygon

+0

ああ!そうですか! send関数に 'null'を渡さないでください! 'xmlHttp.send()' – mehdy

+0

うーん...まだ同じエラーです。 :/ – KingPolygon

関連する問題