Results 1 to 3 of 3

Thread: ajx include URL is missing folder when following link

  1. #1
    Join Date
    Nov 2010
    Posts
    4
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default ajx include URL is missing folder when following link

    1) Script Title:
    Ajax Include

    2) Script URL (on DD):
    http://www.dynamicdrive.com/dynamici...axincludes.htm

    3) Describe problem:

    Hi all,

    I am using the following code on a custom action page on a SMF board.

    Code:
    <?php
    
    if (!defined('SMF'))
    die('Hacking attempt...');
    
    function kb() {
        global $context;
        $context['killboard'] = 'Elysian Empires\' Death \'n Destruction Page';
    
        function template_main() {
    		echo '
    			<script type="text/javascript">
    
    			/***********************************************
    			* Ajax Includes script- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
    			* This notice MUST stay intact for legal use
    			* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
    			***********************************************/
    
    			//To include a page, invoke ajaxinclude("afile.htm") in the BODY of page
    			//Included file MUST be from the same domain as the page displaying it.
    
    			var rootdomain="http://"+window.location.hostname
    
    			function ajaxinclude(url) {
    				var page_request = false
    				if (window.XMLHttpRequest) // if Mozilla, Safari etc
    					page_request = new XMLHttpRequest()
    					else if (window.ActiveXObject){ // if IE
    						try {
    							page_request = new ActiveXObject("Msxml2.XMLHTTP")
    						}	 
    						catch (e){
    						try{
    							page_request = new ActiveXObject("Microsoft.XMLHTTP")
    						}
    						catch (e){}
    						}
    					}
    				else
    				return false
    				page_request.open(\'GET\', url, false) //get page synchronously 
    				page_request.send(null)
    				writecontent(page_request)
    			}
    
    			function writecontent(page_request){
    				if (window.location.href.indexOf("http")==-1 || page_request.status==200)
    				document.write(page_request.responseText)
    			}
    			</script>
    			
    			<script type="text/javascript">
    				ajaxinclude(rootdomain+"/kb/index.php")
    			</script>
    		';
    
        }
    }
    
    ?>
    The problem is that the page initially loads fine but when I click a link on the page loaded the URL is not correct. To clarify:

    The custom action URL is smf.bijkersworld.com/index.php?action=kb //this page contains the code above.

    When I click a link on the included page it wants to load /index.php?a=search. This should be /kb/index.php?a=search.

    I'd appreciate any help with this.

    Thanks in advance.

  2. #2
    Join Date
    Aug 2004
    Posts
    10,143
    Thanks
    3
    Thanked 1,008 Times in 993 Posts
    Blog Entries
    16

    Default

    Make sure the links inside the included Ajax page are absolute URLs (versus relative), ie:

    Code:
    http://mysite.com/kb/index.php?a=search (instead of just /kb/index.php?a=search)
    This would avoid any issue with the final URL being modified based on the directory structure of the page that's showing the Ajax page.
    DD Admin

  3. #3
    Join Date
    Nov 2010
    Posts
    4
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default

    Thanks.

    I tried that, the only location where I could do that is in the line

    var rootdomain="http://"+window.location.hostname

    Changed to

    var rootdomain="http://smf.bijkersworld.com/kb"

    This gives me a popup with error message:
    error: the xajax javascript component could not be included. perhaps the url is incorrect?

    url: common/xajax_js/xajax_core.js

    Any ideas what is going on?

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •