2016-07-15 10 views
0

Ich versuche, flipkart API-Daten zu erhalten. wie diese, aber ich nicht in der Lage bin heder mit xhrfield zu senden IST HIER MEIN CODE:Kann Header mit xhrfield nicht senden

$.ajax({ 
    type: 'GET', 
    url:'https://affiliate-api.flipkart.net/affiliate/search/json?query=iPhone+mobiles&resultCount=3', 
    crossDomain: true, 
// dataType: 'JSONP', 
    /*xhrFields: { 
      withCredentials: true 
     },*/ 
    // contentType: 'application/json; charset=utf-8', 

     beforeSend : function(xhr) { 
     xhr.withCredentials = true;   
     xhr.setRequestHeader('Fk-Affiliate-Id', 'myid'); 
     xhr.setRequestHeader('Fk-Affiliate-Token', 'mytoken'); 
     }, 
    /* headers: { 
     'Access-Control-Allow-Origin':'*', 
     'Fk-Affiliate-Id': 'myid', 
     'Fk-Affiliate-Token': 'mytoken', 
     'Content-Type': 'application/x-www-form-urlencoded' 
     },*/ 

    success: function(data){ ...... 
} 
}); 

Wie Sie i ahve beide versuchen, siehe Kommentar können aber nicht in der Lage Header mit xhrfield zu senden. Wenn ich einen Kommentar xhrfield Header senden werde senden

+0

Welchen Fehler bekommen Sie? Beide sind richtige Methoden zum Senden von Headern. Außerdem sollten Myid und Mytoken Objekte sein und keine Variablen und nicht in Anführungszeichen eingeschlossen sein. –

+0

401 ,, ungültiger Header, Fk-Affiliate-ID und Fk-Affiliate-Token wird nicht in Anforderungsheader gesendet –

+0

JSONP-Anforderungen können keine Header festlegen. – epascarello

Antwort

0

Sie können keine Header mit einer JSONP Anfragen senden, da alles, was es tut, ist ein Skript-Tag auf der Seite.

Eine JSONP-Anfrage besteht darin, ein Skript-Tag an die Seite anzuhängen. Es fügt einen Callback-Parameter zu der URL hinzu, auf die das Skript wartet, wenn das Skript ausgeführt wird. Es gibt keine Möglichkeit, den Header zu einem externen Skript hinzuzufügen.

Die Site müsste eine JSON-Anforderung für CORs unterstützen, um den Header zu senden.

+0

'// contentType:" application/jsonp ",' Soll ich das tun? –

+0

Es ist nicht möglich .... Ein Skript-Tag kann keine Header setzen. Es macht keine XMLHttpRequest. – epascarello

+0

Dann, wie kann ich Header senden, mit CORS –