簡體   English   中英

使用“#!” 在ajax函數網址中

[英]working with '#!' in a ajax function url

好的,我創建了以下ajax請求,但無法傳遞“#!” 函數創建的響應向瀏覽器輸入字符。 當我在網絡瀏覽器中查看控制台時,“#!” 字符已從網址中完全刪除。 是否可以將這些字符保留在url中?

碼:

$(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();

});

這是因為url片段(由#符號后面的所有內容表示) 客戶端 片段不會與XHR / ajax一起發送。 根據規范,XHR專門從響應url中排除url片段 在您的特定情況下,您使用的是decodeURIComponent ,它保留#號,從而導致其被剝離。

從服務器返回請求的資源后,僅在客戶端評估片段。

您可能可以通過使用encodeURIComponent規避此問題。


可以在Wikipedia上找到有關URL片段的更多信息。

MDN在window.location.hash上也有文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM