2016-04-12 5 views
3

Ich mache diese Anfrage in AJAX, aber ich habe immer noch diese folgende Fehlermeldung über CORS: XMLHttpRequest kann https://cubber.zendesk.com/api/v2/organizations/37520251/users.json nicht geladen werden. Anforderungsheaderfeld Access-Control-Allow-Origin ist in der Preflight-Antwort von Access-Control-Allow-Header nicht zulässig. Können Sie mir helfen pls (i viel Thema gesehen haben und ich verstehe immer noch nicht, warum es nicht funktioniertCORS Fehler mit AJAX-Anfrage

function afficheorga(a){ 
     $.ajax({ 
      url: "https://cubber.zendesk.com/api/v2/users/"+a+"/organizations.json", 
      type: 'GET', 
      dataType: 'json', 
      cors: true , 
      contentType:'application/json', 
      secure: true, 
        headers: { 
         'Access-Control-Allow-Origin': '*', 
        }, 
      beforeSend: function (xhr) { 
       xhr.setRequestHeader ("Authorization", "Basic " + btoa("")); 
      }, 
      success: function (data){ 
      console.log(data.organizations[0].name); 
      var organisation = data.organizations[0].name; 
      $("#company").text(organisation); 
      } 
     }) 
    } 
+0

der Server erscheint nicht CORS zu unterstützen. die „Access-Control-Allow-Origin“ Header aus der Antwort des Servers fehlt. Sie könnten auch durch das Hinzufügen von benutzerdefinierten Header ein Preflight-Anfrage auslösen. – Roberto

+0

der Zen Desk API sagt: "CORS-Anfragen werden nur unterstützt y für Endpunkte wie die Hilfe-Center-Suche, für die keine Authentifizierung erforderlich ist. CORS-Anfragen werden für keine Endpunkte unterstützt, die eine Authentifizierung erfordern. "Siehe: [Core API - Einführung] (https://developer.zendesk.com/rest_api/docs/core/introduction) – Roberto

Antwort

3

Sie um dies durch den Einsatz jsonp bekommen können. Ändern dataType zu jsonp so Ihre GET Anfrage zu sein wie folgt

function afficheorga(a){ 
     $.ajax({ 
      url: "https://cubber.zendesk.com/api/v2/users/"+a+"/organizations.json", 
      type: 'GET', 
      dataType: 'jsonp', 
      cors: true , 
      contentType:'application/json', 
      secure: true, 
        headers: { 
         'Access-Control-Allow-Origin': '*', 
        }, 
      beforeSend: function (xhr) { 
       xhr.setRequestHeader ("Authorization", "Basic " + btoa("")); 
      }, 
      success: function (data){ 
      console.log(data.organizations[0].name); 
      var organisation = data.organizations[0].name; 
      $("#company").text(organisation); 
      } 
     }) 
} 
+0

Nun, das lösche meinen Fehler über die Herkunft der Querverweise Meine API für die Anfrage akzeptierte "jsonp" nicht, so dass ich sie nicht verwenden kann – xenurs