I am using version 1.10 playing around with it and trying to get it functional but I tried adding an ajax page in the staff directory called getLocations.php. What this does is simply when you select a customer (which is a feature I added) from a dropdown list, another dropdown is populated with a list of locations for that customer. The problem is that if I navigate directly to that page via setting the url to OSTickets/upload/include/staff/getLocations.php, I get a forbidden error. It seems the coders have created an ajax page that all ajax must go through and I'm trying to figure out where the problem is. However, if I navigate to that page I get a 400 Bad Request Http response. They use regular expressions to create a string and even create their own Http responses which means that I might not even be getting the right Http response! Here's where I think the problem is:url('^/tickets/', patterns('ajax.tickets.php', url_get('^(?P<tid>\d+)/change-user$', 'changeUserForm'), url_post('^(?P<tid>\d+)/change-user$', 'changeUser'), url_get('^(?P<tid>\d+)/user$', 'viewUser'), url_post('^(?P<tid>\d+)/user$', 'updateUser'), url_get('^(?P<tid>\d+)/preview', 'updateUser'), url_get('^(?P<cust_id>\d+)/preview', 'findLocations'), url_post('^(?P<tid>\d+)/lock$', 'acquireLock'), url_post('^(?P<tid>\d+)/lock/(?P<id>\d+)/renew', 'renewLock'), url_post('^(?P<tid>\d+)/lock/(?P<id>\d+)/release', 'releaseLock'), url_get('^(?P<tid>\d+)/forms/manage$', 'manageForms'), url_post('^(?P<tid>\d+)/forms/manage$', 'updateForms'), url_get('^(?P<tid>\d+)/canned-resp/(?P<cid>\w+).(?P<format>json|txt)', 'cannedResponse'), url_get('^(?P<tid>\d+)/status/(?P<status>\w+)(?:/(?P<sid>\d+))?$', 'changeTicketStatus'), url_post('^(?P<tid>\d+)/status$', 'setTicketStatus'), url('^(?P<tid>\d+)/thread/(?P<thread_id>\d+)/(?P<action>\w+)$', 'triggerThreadAction'), url_get('^status/(?P<status>\w+)(?:/(?P<sid>\d+))?$', 'changeSelectedTicketsStatus'), url_post('^status/(?P<state>\w+)$', 'setSelectedTicketsStatus'), url_get('^(?P<tid>\d+)/tasks$', 'tasks'), url('^(?P<tid>\d+)/add-task$', 'addTask'), url_get('^(?P<tid>\d+)/tasks/(?P<id>\d+)/view$', 'task'), url_post('^(?P<tid>\d+)/tasks/(?P<id>\d+)$', 'task'), url_get('^lookup', 'lookup'),The findLocations url_get is the code I added. I'm sure it's wrong but I can't figure out exactly what these regular expressions are doing. They are sent to some dispatcher class that pulls apart the url string passed in and matches it to something. Anyone have a clue as to how to get my ajax to work?