关于javascript读取session的问题

ilove789110 2008-11-11 01:32:44
这是我写的网页读取session的句子:
<script type="text/javascript" language="JavaScript>
var a=<%=Session("UserName")%>;
if (a.length==0)
{
location.href='http://www.163.com';
}
else
{
showFlash("viewer.swf", '100%', '100%', false);
}
</script>
但是一直显示的是blank.

Web.config如下:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>

<system.web>

<!-- 动态调试编译
设置 compilation debug="true" 以启用 ASPX 调试。否则,将此值设置为
false 将提高此应用程序的运行时性能。
设置 compilation debug="true" 以将调试符号(.pdb 信息)
插入到编译页中。因为这将创建执行起来
较慢的大文件,所以应该只在调试时将此值设置为 true,而在所有其他时候都设置为
false。有关更多信息,请参考有关
调试 ASP.NET 文件的文档。
-->
<compilation
defaultLanguage="vb"
debug="true"
/>

<!-- 自定义错误信息
设置 customErrors mode="On" 或 "RemoteOnly" 以启用自定义错误信息,或设置为 "Off" 以禁用自定义错误信息。
为每个要处理的错误添加 <error> 标记。

"On" 始终显示自定义(友好的)信息。
"Off" 始终显示详细的 ASP.NET 错误信息。
"RemoteOnly" 只对不在本地 Web 服务器上运行的
用户显示自定义(友好的)信息。出于安全目的,建议使用此设置,以便
不向远程客户端显示应用程序的详细信息。
-->
<customErrors
mode="RemoteOnly"
/>

<!-- 身份验证
此节设置应用程序的身份验证策略。可能的模式是 "Windows"、
"Forms"、 "Passport" 和 "None"

"None" 不执行身份验证。
"Windows" IIS 根据应用程序的设置执行身份验证
(基本、简要或集成 Windows)。在 IIS 中必须禁用匿名访问。
"Forms" 您为用户提供一个输入凭据的自定义窗体(Web 页),然后
在您的应用程序中验证他们的身份。用户凭据标记存储在 Cookie 中。
"Passport" 身份验证是通过 Microsoft 的集中身份验证服务执行的,
它为成员站点提供单独登录和核心配置文件服务。
-->
<authentication mode="Windows" />

<!-- 授权
此节设置应用程序的授权策略。可以允许或拒绝不同的用户或角色访问
应用程序资源。通配符: "*" 表示任何人,"?" 表示匿名
(未经身份验证的)用户。
-->

<authorization>
<allow users="*" /> <!-- 允许所有用户 -->
<!-- <allow users="[逗号分隔的用户列表]"
roles="[逗号分隔的角色列表]"/>
<deny users="[逗号分隔的用户列表]"
roles="[逗号分隔的角色列表]"/>
-->
</authorization>

<!-- 应用程序级别跟踪记录
应用程序级别跟踪为应用程序中的每一页启用跟踪日志输出。
设置 trace enabled="true" 可以启用应用程序跟踪记录。如果 pageOutput="true",则
在每一页的底部显示跟踪信息。否则,可以通过浏览 Web 应用程序
根目录中的 "trace.axd" 页来查看
应用程序跟踪日志。
-->
<trace
enabled="false"
requestLimit="10"
pageOutput="false"
traceMode="SortByTime"
localOnly="true"
/>

<!-- 会话状态设置
默认情况下,ASP.NET 使用 Cookie 来标识哪些请求属于特定的会话。
如果 Cookie 不可用,则可以通过将会话标识符添加到 URL 来跟踪会话。
若要禁用 Cookie,请设置 sessionState cookieless="true"。
-->
<sessionState
mode="InProc"
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
cookieless="false"
timeout="20"
/>

<!-- 全球化
此节设置应用程序的全球化设置。
-->
<globalization
requestEncoding="utf-8"
responseEncoding="utf-8"
/>

</system.web>

</configuration>

希望各位可以解一下惑,谢谢
...全文
4484 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
jinliaini 2010-11-22
  • 打赏
  • 举报
回复
wsadsadsad
zhangzm1117 2010-10-04
  • 打赏
  • 举报
回复
var a = <%=Session["UserName"].ToString()%>;
东湖岸边 2010-04-24
  • 打赏
  • 举报
回复
var a= "<%=Session["UserName"].value%>";
lairui1232000 2008-11-15
  • 打赏
  • 举报
回复
<script type="text/javascript" language="JavaScript>
var a= '<%=Session("UserName")%>';
if (a.length==0)
{
location.href='http://www.163.com';
}
else
{
showFlash("viewer.swf", '100%', '100%', false);
}
</script>
Go 旅城通票 2008-11-12
  • 打赏
  • 举报
回复
可能session丢失了

楼主是怎么打开这个页面的???

不会是新打开一个ie窗口,然后输入url这样来访问吧??

这样就不是同一个session对象了
ilove789110 2008-11-12
  • 打赏
  • 举报
回复
我改了var a= " <%=Session("UserName")%>";
还是出现一样的状况
vc_delphi 2008-11-12
  • 打赏
  • 举报
回复
var a= " <%=Session("UserName")%>";
编程有钱人了 2008-11-12
  • 打赏
  • 举报
回复
帮你顶上去
rjzou2006 2008-11-12
  • 打赏
  • 举报
回复
HTML codevar a= " <%=Session("UserName")%>";
ilove789110 2008-11-12
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 varlj 的回复:]
引用 19 楼 ilove789110 的回复:
我是用Response.redirect(URL)的方式导向到这个网页的。


我记得转发后session不能共用的
[/Quote]

那有什么其他的方法吗?
varlj 2008-11-12
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 ilove789110 的回复:]
我是用Response.redirect(URL)的方式导向到这个网页的。
[/Quote]

我记得转发后session不能共用的
ilove789110 2008-11-12
  • 打赏
  • 举报
回复
我是用Response.redirect(URL)的方式导向到这个网页的。
九号特工 2008-11-12
  • 打赏
  • 举报
回复
在后台把session里要用么的东西传到客户端,session只能在服务端用
songyun870 2008-11-12
  • 打赏
  • 举报
回复
Session("UserName").value
????
maybe......
阿云ivan 2008-11-12
  • 打赏
  • 举报
回复
试一下这样:
后台C#:
public string UserName
{
get
{
return Session["UserName"] == null ? "" : Session["UserName"].ToString();
}
}

前台js:
alert("<%=UserName%>");
myvicy 2008-11-12
  • 打赏
  • 举报
回复

在浏览器中查看一下页面的源文件,看看这行
var a= " <%=Session("UserName")%>";
变成什么了?

你也可以单独做一个文件只输出<%=Session("UserName")%>看看是否有值,以确认你有给session你想要的值。
ilove789110 2008-11-12
  • 打赏
  • 举报
回复
这是loadflash.js的文件:
function showFlash(swf, w, h, loop)
{
var isMSIE = navigator.appName.indexOf("Microsoft") != -1;
var s = '';
s += '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,65,0" width="'+w+'" height="'+h+'" id="SlideContent" align="" VIEWASTEXT>'
s += '<param name="movie" value="'+swf+'" />'
s += '<param name="menu" value="false" />'
s += '<param name="quality" value="best" />'
s += '<param name="loop" value="'+loop+'" />'
s += '<param name="FlashVars" value="initialURL='+document.location+'&isMSIE='+isMSIE+'&useBSM=false" />'
s += '<embed src="'+swf+'" FlashVars="initialURL='+document.location+'&isMSIE='+isMSIE+'&useBSM=false" menu="false" quality="best" width="'+w+'" height="'+h+'" loop="'+loop+'" name="SlideContent" align="" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" swLiveConnect="true"></embed>'
s += '</object>'
// in theory, we should always embed in a table, but in practice, IE6 malfunctions
// when width & height = 100%, but in that case, we don't really need the table anyway.
if ((w.toString().indexOf('%') == -1) && (h.toString().indexOf('%') == -1))
{
s = '<table border=0 width="100%" height="100%"><tr valign="middle"><td align="center">' +
s +
'</td></tr></table>';
}
document.write(s);
}

如果我想使用session的话要可以改吗?
因为我平常多用vb,javascript不是太了解。
lqscoke 2008-11-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 littlelam 的回复:]
HTML codevar a= "<%=Session("UserName")%>";
[/Quote]
是这个问题
YZLYJ 2008-11-11
  • 打赏
  • 举报
回复
用Ajax 来获取 session 里的值不更好吗
ilove789110 2008-11-11
  • 打赏
  • 举报
回复
按说,session是asp.net提供的基本变量应该不会这样的。
不过,我的Web.config是直接从其他的文件夹复制过来的,会不会是这个原因。
各位高手有什么解决办法吗?
加载更多回复(6)

87,926

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧