如何使用AJAX + pushState更正生成URL?

问题描述 投票:0回答:2

问题是:当我切换到页面时,关于/ index.html或skills / index.html,旧的别名URL没有删除。 enter image description here enter image description here据你所知,如果我进入下一个链接,我会得到/关于/技能......但这不是正确的道路。我正在使用Ajax + pushState。

$(document).on('click', '#nav_bar nav a,.flat-button, a.logo', function ( e ) {

		 e.preventDefault();

		 if ( !$(this).hasClass('active') ) {

			if ( app.ui.pageLoad($(this).attr('href'), $(this).attr('rel')) ) {
			   debug;
			   $('#nav_bar nav a.active').removeClass('active');
			   $(this).addClass('active');

			   window.history.pushState("", "", $(this).attr('href'));
			}


		 }

		 $('a.logo').removeClass('active');

		 e.stopPropagation();

		 return false;
	  });

pageLoad: function ( url, rel ) {

	  console.log(url);

	  if ( app.ajax !== null ) {

		 return false;

	  }
	  else {

		 app.ui.preloader.preloaderInit(rel);


		 app.ajax = jQuery.ajax({
			type: 'GET',
			url: url
		 });

		 app.ajax.done(function ( msg ) {
			var cont = $(msg).filter("#page");
			app.ui.contents = cont.contents();

			app.ajax = null;
		 });

		 app.ajax.fail(function ( jqXHR, textStatus ) {
			const errmsg = 'Error';
			$("#page").html(errmsg);

		 });


		 return true;

	  }


   },
javascript jquery ajax html5 dom
2个回答
0
投票

使用根相对路径(它们以/开头)而不是相对路径(它们相对于当前文件位置进行解析):

href="skills/index.html" => href="/skills/index.html"


0
投票

我修复了问题app.ajax = jQuery.ajax({type:'GET',url:'http://localhost:63342/jacekjeznach.com/'+ url});

© www.soinside.com 2019 - 2024. All rights reserved.