Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp classic Response.ContentType=";text/javascript“;不起作用_Asp Classic_Jscript - Fatal编程技术网

Asp classic Response.ContentType=";text/javascript“;不起作用

Asp classic Response.ContentType=";text/javascript“;不起作用,asp-classic,jscript,Asp Classic,Jscript,我可以得到Response.ContentType=“text/javascript”的可能原因吗不起作用 更详细地说,我有: Response.Clear(); Response.ContentType = "text/javascript"; %>notifySuccess();<% notifySuccess是调用页面中的一个函数,只执行重新加载: document.location.reload(); 有谁能给我指出正确的方向来解释为什么这不起作用 我在windows 7

我可以得到
Response.ContentType=“text/javascript”的可能原因吗不起作用

更详细地说,我有:

Response.Clear();
Response.ContentType = "text/javascript";
%>notifySuccess();<%
notifySuccess是调用页面中的一个函数,只执行重新加载:

document.location.reload();
有谁能给我指出正确的方向来解释为什么这不起作用

我在windows 7上使用IIS 7.5,但在windows 2008上遇到同样的问题

在多次评论都没有成功之后,我创建了一个测试页面(它也有同样的问题)。以下是整个测试脚本:

<%@Language="JScript"%>
<%
Response.Clear();
Response.ContentType = "text/javascript";
%>alert(123);

警报(123);
还尝试:

<%@Language="JScript"%>
<%
Response.Clear();
Response.ContentType = "text/javascript";
%><script type="text/javascript">alert(123);</script>

警报(123);
而且:

<%@Language="JScript"%>
<%
Response.Clear();
Response.ContentType = "application/javascript";
%>alert(123);

警报(123);
编辑

上面的测试脚本名为custom2.asp,我现在有了一个名为custom.asp的脚本,它只包含一个action=custom2.asp的表单:

<!DOCTYPE html>
<html>
<head>
</head>
<body>
    <form action="custom2.asp">
        <input type="submit" />
    </form>
</body>
</html>


这基本上是现有代码所做的,但它在真实代码的原型模型框中。

从注释中可以看出,我理解您缺少什么

这有两个部分

  • 作为JavaScript返回的ASP页面(用于参数sack
    js.ASP

    notifySuccess();
    
  • 包含JavaScript的ASP页面(我们称之为page1.ASP)

    
    非常基本的页面
    
    如果您使用浏览器请求一个JavaScript程序,该浏览器使用通常用于显示HTML文档的机制(例如,通过跟踪链接、提交表单或在地址栏中键入JS的URL),则浏览器将该JavaScript程序的源代码显示为文本。这是正常的行为

    要运行JavaScript程序,您需要:

  • 创建HTML文档
  • 在该文档中包含
    元素
  • 将该
    src
    属性设置为JS程序的URL
  • 使用浏览器访问HTML文档
  • 但是,为了提交表单,然后根据得到的响应在当前页面的上下文中运行JavaScript,您需要:

  • 将事件处理程序(使用JS)绑定到表单的提交事件
  • 防止表单提交的默认行为
  • 使用Ajax发出HTTP请求(而不是正常提交表单)
  • 检查响应(您可能应该将其设置为某种形式的结构化数据,而不是应用程序代码)
  • 如果响应表明条件合适,那么运行JS
  • 但是,您的Javascript似乎只是重新加载现有页面,因此您可以完全忘记使用JS,而使用另一种方法

  • 正常提交表格
  • 在服务器端处理数据
  • 发出HTTP 302 Found响应,该响应带有
    位置
    标题,给出表单出现的页面的URL
  • 允许将浏览器重定向回其来源,并在此过程中重新加载页面

  • 你可能会觉得有用。您应该将其作为
    Response.ContentType=“application/javascript”
    发送。MIME类型是否已在IIS中注册?也许会有帮助。奇怪的是,也许这会有帮助。听起来你离我越来越近了,不幸的是我没有主意了,但祝你好运找到解决办法。为了安全起见,可能需要重新启动服务器……在许多服务器上,你的意思是什么?你在多台IIS服务器上遇到了这个问题吗?好吧,这似乎从来没有起过作用,而且一些其他代码已经介入,以掩盖发生的任何问题(到目前为止)-你应该为你的持久性提高所有评论。
    <!DOCTYPE html>
    <html>
    <head>
    </head>
    <body>
        <form action="custom2.asp">
            <input type="submit" />
        </form>
    </body>
    </html>