5

Bir JSON yanıtı almak için GroupMe API'ye bir API çağrısı yapmaya çalışıyorum ancak şu hatayı alıyorum:İstek başlık alanı X-CSRFToken'e önkoşul yanıtında Access-Control-Allow-Headers tarafından izin verilmiyor

XMLHttpRequest cannot load ...(call url)... 
Request header field X-CSRFToken is not allowed by Access-Control-Allow-Headers in preflight response. 

Benim JavaScript şuna benzer:

var xmlhttp = new XMLHttpRequest(); 
var url = (call url) 

xmlhttp.onreadystatechange = function() { 
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 

    xmlhttp.open("GET", url, true); 
    xmlhttp.setRequestHeader("Access-Control-Allow-Headers", "*"); 
    xmlhttp.setRequestHeader('Access-Control-Allow-Origin', '*'); 

    $.getJSON(url, function(data){ 
     var array = data.response.messages.reverse(); 
     for(i = 0; i<array.length; i++){ 
      $('.messages').append("<div class='message'>"+array[i].name+":<br>"+array[i].text+"</div>"); 
     } 
    }); 
    } 
} 

xmlhttp.open("GET", url, true); 
xmlhttp.send(); 

gerçekten istek başlıklarını yüzden ben doğru başlıklarını ayarlama değilim tahmin ediyorum nasıl çalıştığını anlamıyorum. Birisi bana bu sorunu çözmek için başlıkları nasıl ayarlayabileceğime dair doğru yönde işaret edebilir mi?

+0

İstemciden gelen başlıkları karıştırmanıza gerek yoktur, bunlar sunucu yanıtı üstbilgileridir. Yanıtın bir parçasıysa sunucunuzun ACAH’da 'X-CSRFToken' seçeneğini beyaz listeye eklediğinden emin olun. – dandavis

+1

oh, ve biz JSers aslında bir preflight yapmak yok, tarayıcı bizim için yapar ve bizim "düzenli kıç" ajax çalışırsa izin verir ... – dandavis

cevap

5

      bir üçüncü taraf sunucuya bir arama yapmak istiyorsanız, uçuş öncesi isteği için, response header Alacağınız hata kurtulmak için Access-Control-Allow-Headers: X-CSRF-Token içermelidir. Ama üzerinde kontrolümüz yok.

      çağrı size ajax jQuery requestcrossDomain parameter set to true ile gönderilmesi halinde durumda tip OPTIONS taşımaktadır sizin uçuş öncesi isteğine yanıt olarak Access-Control-Allow-Headers: X-CSRF-Token ekleyebilir bizim sunucusuna yapılırsa Bizim kontrolü altında tamamen olduğunu .

+0

Teşekkürler! Erişim-Kontrol-İzin-Başlıkları Ekleme: X-CSRF-Token, İçerik-Türü hile yaptı! – Ben

+1

Bunu nerede eksenlere koymalıyım? –