我是否可以了解Response.ContentType="text/javascript";
无效的原因。
更详细地说,我有:
Response.Clear();
Response.ContentType = "text/javascript";
%>notifySuccess();<%
我得到的只是一个文字notifySuccess();
的页面。查看页面源显示的文本相同。
查看响应标题,我得到:
Cache-Control: private
Content-Type: text/javascript
Content-Encoding: gzip
Vary: Accept-Encoding
Server: Microsoft-IIS/7.5
X-Powered-By: ASP.NET
Date: Thu, 03 Apr 2014 08:33:01 GMT
Content-Length: 149
200 OK
notifySuccess是调用页面中的一个函数,只是重新加载:
document.location.reload();
任何人都可以指出我正确的方向,为什么这不起作用。
我在Windows 7上使用IIS 7.5,但在Windows 2008上遇到了同样的问题。
经过多次评论没有成功,我创建了一个测试页面(具有相同的问题)。这是整个测试脚本:
<%@Language="JScript"%>
<%
Response.Clear();
Response.ContentType = "text/javascript";
%>alert(123);
也尝试过:
<%@Language="JScript"%>
<%
Response.Clear();
Response.ContentType = "text/javascript";
%><script type="text/javascript">alert(123);</script>
还有:
<%@Language="JScript"%>
<%
Response.Clear();
Response.ContentType = "application/javascript";
%>alert(123);
修改
因此,上面的测试脚本名为custom2.asp,我现在有一个名为custom.asp的脚本,它只包含一个带有action = custom2.asp的表单:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<form action="custom2.asp">
<input type="submit" />
</form>
</body>
</html>
这基本上是现有代码所做的,但它是在真实代码中的原型模型框中。
答案 0 :(得分:2)
从评论中我知道你理解你缺少的东西
这有两个部分
您的ASP页面以JavaScript形式返回(对于参数解析js.asp
)
<%
Response.Clear();
Response.ContentType = "text/javascript";
%>notifySuccess();
包含JavaScript的ASP页面(我们称之为page1.asp)
<html>
<head>
<title>Really basic page</title>
</head>
<body>
<!-- your page content here -->
<%
'Might have some ASP code here
%>
<script type="text/javascript">
function notifySuccess() {
// This function is defined in this page and does something.
}
</script>
<!-- this will be processed as JavaScript and call notifySuccess() -->
<script type="text/javascript" src="js.asp"></script>
</body>
</html>
答案 1 :(得分:1)
如果您使用通常用于显示HTML文档的机制(例如,通过关注链接,提交表单或在地址栏中键入JS的URL)请求带有浏览器的JavaScript程序,则浏览器将显示该JavaScript程序的源代码为文本。这是正常行为。
要运行JavaScript程序,您需要:
<script>
元素src
的{{1}}属性设置为JS程序的URL 但是,为了提交表单然后根据您获得的响应在当前页面的上下文中运行JavaScript ,您需要:
但是,您的Javascript似乎只是重新加载现有页面,因此您可以完全忘记使用JS并使用不同的方法。
<script>
标题发出HTTP 302 Found响应,并提供表单上显示的网页的网址