2015-06-19 1 views
0

Я включил существующий классический ASP-сайт с JQuery (раньше они использовали VBScript). Предыдущая версия работает отлично, но скрипт необходимо обновить, чтобы он работал в других браузерах. Но когда я перенаправляю страницу с интегрированным JQuery, система загружает файл default.asp и второй URL. В адресной строке также отображается URL-адрес по умолчанию.Классический ASP и JQuery перезагружает страницу default.asp при перенаправлении

Как я могу предотвратить это?

Когда я использую window.open('url'), он открывает правильную страницу с правильным URL-адресом, но у меня есть 2 вкладки. Когда я использую window.open('url', '_self'), он все еще перенаправляется на проблемную страницу.

P.S. Response.Redirect 'url' и window.open('url', '_self') дают те же результаты.

Edit: Вот некоторые из кода используется

Вот основная рама JS (представить функцию), которая загружает в default.asp

$("img[name=cmdLog]").click(function(){ 
      $("form[name=frmLogIn]").target = "_top"; 
      $("form[name=frmLogIn]").get(0).setAttribute("action", "ValidateUser.asp"); 
      $("form[name=frmLogIn]").submit(); 
     }); 

Вот ValidateUser.asp (без обновленного JS, используя только VBScript)

<form name="frmValidate" method="post"> 
    <% 
     Session("PMISConnString")="Provider=SQLOLEDB;Server=192.168.x.x;User ID=sa;PWD=x;Database=DB" 
     dim conn, rsEmp, SQLQuery, m_Code,i,lenStr,newCode,rsUser 
     set conn=Server.CreateObject("ADODB.Connection") 

     m_Code=Request.Form("txtEmpID") 
     lenStr=len(m_code) 
     newCode="" 
     for i=1 to lenStr 
      if mid(m_Code,i,1)="'" then 
       newCode=newCode & "''" 
      else 
       newCode=newCode & mid(m_Code,i,1) 
      end if 
     next 


     conn.Open=Session("PMISConnString") 

     dim clsCrypt 
     dim url 
     set clsCrypt=Server.CreateObject("ChiperText.clsChiperText") 

     SQLQuery="SELECT UserCode, Pwd " 
     SQLQuery=SQLQuery & "FROM Users " 
     SQLQuery=SQLQuery & "WHERE UserCode='" & clsCrypt.ChiperText(lcase(newCode)) & "'" 

     set rsUser=Server.CreateObject("ADODB.Recordset") 
     rsUser.Open SQLQuery,conn 

     if rsUser.EOF then 
      url = "ErrorPage.asp?TYPE=6" 
     elseif rsUser.Fields("Pwd")<>clsCrypt.ChiperText(Request.Form("txtEmpPassword")) then 
      url = "ErrorPage.asp?TYPE=7" 
     end if 

     SQLQuery="SELECT EmpID,EmpFirst,EmpLast,dbo.GetCapitalChars(Employee.EmpMid) AS MidInitial From Employee WHERE EmpID='" & newCode & "' " 
     SQLQuery=SQLQuery & "AND EmpActive=1 " 

     set rsEmp=Server.CreateObject("ADODB.Recordset") 
     rsEmp.Open SQLQuery,conn 
     if not rsEmp.EOF then 
      Session("EmpID")=Request.Form("txtEmpID") 
      Session("MyName")=rsEmp.Fields("EmpFirst") & " " & rsEmp.Fields("MidInitial") & " " & rsEmp.Fields("EmpLast") 
      'varServer="http://" + Request.ServerVariables("SERVER_NAME") + "/" + Session("VirtualName") + "/" 

      Response.Cookies("Site")="http://" + Request.ServerVariables("SERVER_NAME") + "/" + "PMIS" 

      Session("Server")="http://" + Request.ServerVariables("SERVER_NAME") + "/" + "PMIS" 
      Session("ImgFolder")="http://" + Request.ServerVariables("SERVER_NAME") + "/" + "PMIS/Images/" 'full path ng images folder under PMIS directory 
      url = "main2.asp" 
     else 
      url = "ErrorPage.asp?TYPE=1" 
     end if 

     Response.Redirect(url) 
     rsEmp.Close 
     Set rsEmp=Nothing 
     set clsCrypt=Nothing 
     conn.Close 
     set conn=Nothing 
    %> 
</form> 
+0

Создайте новую страницу html/asp без ничего и попробуйте перенаправить на эту страницу. Посмотрите, случится ли такая же проблема. – Jules

+0

Это все равно. И default.asp по-прежнему загружается. – phper

+0

ОК, создайте page1.asp и page2.asp на том же сервере. В page1.asp создайте кнопку с кликом window.open ('page2.asp', '_ self'). Это упражнение - определить, является ли проблема на вашей странице или сервере. – Jules

ответ

0

Если в фрейме, считаю изменить window.top.location.href к переадресации с помощью JavaScript URL вместо этого.

+0

. Причина, по которой я хочу преобразовать его в JS, что он может быть доступен с другими браузерами, а не только с IE. Это главная проблема для нас, мы можем использовать сайт только с IE. Если есть способ заставить VBScript работать с другими браузерами без необходимости устанавливать некоторые плагины на компьютер, я бы придерживался VBScript. – phper

+0

Я имел в виду VBScript на стороне сервера, который браузер не видит. Мы не видим достаточно кода, чтобы иметь реальное представление о том, что происходит, и где код живет, который вы пытаетесь использовать. Мой комментарий в контексте перезаписи ASP, а не того, что идет в браузер. Для ясности: СЕРВИС-БОКОВЫЙ VBScript никогда не отправляется в браузер CLIENT-SIDE. Материал, который делает все Response.Writing, может оставаться в VBScript ... это тот материал, который Response.Writes должен быть JavaScript. – CLaFarge

+0

Не думаю, что я тебя полностью понимаю. Но, пожалуйста, проверьте мои изменения и скажите мне, чего не хватает моему коду. Этот код не перенаправляет правильно, кстати. – phper

Смежные вопросы