2017-02-24 7 views
0

ok Ich habe die unten Ajax Anfrage erstellt und ich habe Probleme, die '#! Zeichen aus der Antwort, die von der Funktion erstellt wurde. Wenn ich die Konsole im Webbrowser betrachte, wird das '#!' Zeichen werden vollständig aus der URL entfernt. Ist es möglich, diese Zeichen in der URL zu behalten?arbeiten mit '#!' in einer Ajax-Funktion url

Code:

$(function() { 
function loadStats() { 

    $.ajax({ 
    url: 'http://stats.nba.com/players/gamelogs/'+decodeURIComponent('#!')+'?&callback=?', 
    jsonpCallback: 'jsonReturnData', 
    dataType: 'jsonp', 
    data: { 
     CF: 'PLAYER_NAME*E*James Harden', 
     Season: '2016-17', 
     SeasonType: 'Regular Season', 
     format: 'json' 
    }, 

    success: function(response) { 
     console.log(response); 

    } //success 

    }); //AJAX Call 
} //load Chart 

loadStats(); 

}); 
+0

Änderung decodeURIComponent mit encodeURIComponent – gaetanoM

Antwort

0

Dies liegt daran, URL-Fragmente (durch alles nach dem # Zeichen) clientseitige nur sind. Fragmente werden nicht mit XHR/Ajax gesendet. Gemäß der Spezifikation, XHR speziell excludes the url fragment from the response url. In Ihrem speziellen Fall verwenden Sie decodeURIComponent, die das Zeichen # erhält, wodurch es gelöscht wird.

Fragmente werden nur clientseitig ausgewertet, nachdem die angeforderte Ressource vom Server zurückgegeben wurde.

Sie können dies möglicherweise umgehen, indem Sie encodeURIComponent verwenden.


Weitere Informationen finden Sie auf Wikipedia bezüglich URL-Fragmente gefunden werden.

MDN hat auch eine Dokumentation über window.location.hash

+0

Ja, ich dachte, dass, und ich bin fest. Danke für die Kommentare. – user7104290

+0

@ user7104290 'encodeURIComponent' sollte den Trick machen. Aber ich vermute, dass etwas anderes mit dem Code nicht stimmt. Warum brauchst du das '#!' In der URL? Wird es als Endpunkt in der von Ihnen verwendeten NBA-API unterstützt? –

Verwandte Themen