2016-01-25 124 views
0

我正在開發一個使用ASP.NET MVC的網頁。當我使用aJax請求子頁面內容時,url附加了一個「#」automatic.Before阿賈克斯,URL可能是這樣的:http://a.travel.com/product/index,AJAX請求後,URL將是這樣的:http://a.travel.com/product/index#。這是我的Ajax請求的代碼:如何避免url aotomatic在ajax請求後追加「#」符號

function GetProductByTag(tagId, source) { 
     var keyword = $("#serachInput").val(); 
     if (keyword == null) { 
      return; 
     } 
     var xhr = new XMLHttpRequest(); 
     xhr.onreadystatechange = function() { 
      if (xhr.readyState === 4) { 
       if (xhr.status === 200) { 
        document.getElementById("productList").innerHTML = xhr.responseText; 
       } else { 
        xhr.abort(); 
        alert("Too many request!"); 
       } 
      } 
     } 
     xhr.open("Post", "/Product/ProductList?tagId=" + tagId + "&pageIndex=1", true);     
     } 
     xhr.send(null); 
    } 

響應文本是產品列表信息(HTML )。

這是我的網頁列表部分代碼:

   <li onclick="ClickProductList(1,'http://www.ly.com/scenery/BookSceneryTicket_2287.html?spm=1.68076534.156.4&amp;refid=75866398')" class="top"> 
         <a href="#"> 
          <img src="/WCF_UploadFile/TourProductPhoto/20160125143157LWTIW.jpg"> 
          <h6>          
           <span>35</span> 
          </h6> 
          <p></p> 
         </a> 
        </li> 

爲什麼會出現這種情況,如何避免?

+2

[防止HREF = 「#」 從改變URL散列鏈接](的可能的複製http://stackoverflow.com/questions/20215248/prevent-href-link-from-changing -the-url-hash) – JJJ

+0

你如何調用'GetProductByTag'? –

回答

1

如果觸發事件的錨元素具有href =「#」,那麼它將導致瀏覽器像這樣操作。

如果你完全刪除href元素它應該工作,它不會觸發URL更改。

但是,您可能需要更改CSS,因爲沒有href的錨點會丟失某些樣式,如光標。

a:hover { 
cursor:pointer; 
} 

See here for some more info