我能得到为什么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 OKnotifySuccess是调用页面中的一个函数,只需重新加载:
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>这基本上是现有代码所做的,但它在实际代码中的原型模型框中。
发布于 2014-04-03 10:11:24
从评论中可以看出我理解你错过了什么
这有两部分
js.asp)
<% Response.Clear();Response.ContentType = "text/javascript";%>notifySuccess();发布于 2014-04-03 10:12:01
如果您使用通常用于显示JavaScript文档的机制向浏览器请求一个JavaScript程序(例如,按照链接、提交表单或在地址栏中键入JS的URL ),则浏览器将以文本形式显示该JavaScript程序的源代码。这是正常的行为。
要运行JavaScript程序,您需要:
<script>元素src的<script>属性设置为JS程序的URL但是,为了提交表单,然后根据得到的响应在当前页面的上下文中运行JavaScript ,您需要:
但是,您的Javascript似乎只是重新加载了现有的页面,因此可以完全忘记使用JS,而使用不同的方法。
Location头发出HTTP302FindResponse,给出页面的URL,表单出现在https://stackoverflow.com/questions/22832132
复制相似问题