2016-05-06 16 views
1

Ich versuche einen Anruf zu meinem Kolben API (auf Heroku gehostet). Es funktioniert, wenn ich die URL in die URL-Leiste setze, aber nicht, wenn ich es über jquery implementiere, schlägt es fehl.Zugriff auf Flask-API auf Heroku aufgrund von CORS-Problem

ging ich weiter und installiert flask-cors und addierten die folgenden:

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

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

I gibt es etwas anderes zu tun haben? Ich habe auch die folgenden in meiner Anfrage:

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); 
}   

Antwort

0

Access-Control-Allow-Origin ist der Header Sie Antworten nicht festgelegten Anforderungen sollten. und die cross_origin macht das für Sie.

wenn Sie JQuery wollen einfach nur benutzen verwenden:

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

Dank Mehdy. Allerdings würde ich gerne eine xmlhttprequest verwenden (ich habe meine volle Javascript-Funktion veröffentlicht). Ich habe den Header aus der Anfrage entfernt, wie Sie vorgeschlagen, aber ich sehe immer noch das gleiche Problem, das protokolliert wird als: 'Fehler beim Laden der Ressource: Kann keine Anfragen von null machen. – KingPolygon

+0

oh! Aha! Übergeben Sie einfach nicht 'null' an die Sendefunktion! nur 'xmlHttp.send()' – mehdy

+0

Hmm ... immer noch der gleiche Fehler. :/ – KingPolygon