表格发布asp经典xmlhttp

时间:2011-03-27 21:15:29

标签: forms asp-classic xmlhttprequest

我正在尝试从另一个不是我的网站做一个表格帖子,但是 我无法给出错误。

网站上的帖子安装如下:

<a href="javascript:document.result.submit()" class="lnk-more">Veja o resultado da enquete anterior »</a>

<br /><br />

<form name="result" action="http://enquete.terra.com.br/enquete.cgi" method="post">
   <input type="hidden" name="id_enquete" value="144143">
   <input type="hidden" name="opcao" value="0">
</form>

我正在使用asp脚本将这篇文章作为:

<%
Dim objHttp 
Dim str 

   str = "id_enquete=144143&opcao=0" 

   Set objHttp = Server.CreateObject("Msxml2.ServerXMLHTTP") 
   objHttp.Open "POST", "http://enquete.terra.com.br/enquete.cgi", false
   objHttp.setRequestHeader "Host", "http://enquete.terra.com.br"
   objHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded; charset=iso-8859-1"
   objHttp.setRequestHeader "Content-Length", Len(str) 
   objHttp.Send str 

   Response.Write(objHttp.ResponseText) 

Set objHttp = nothing
%>

但这不起作用,有没有人知道我是怎么回事 错误??

由于

2 个答案:

答案 0 :(得分:0)

由于same origin policy,您无法使用AJAX进行跨域请求。如果其他站点支持JSONP,您可以使用脚本请求访问该站点并从中获取数据,当然,您的参数需要在URL中才能生效。

<script type="text/javascript">
     function resultCallback( data ) {
         // do something with the returned JSON data
     }
</script>
<script type="text/javascript" src="http://enquete.terra.com.br/enquete.cgi?id_enquete=144143&opacao=0&callback=resultCallback">
</script>

答案 1 :(得分:0)

代码看起来是真的;您收到“内部服务器错误”的原因是您的错误的IIS设置不在调试模式。

您应该将IIS设置更改为“将错误消息发送到浏览器”,然后您可以在浏览器上看到实际的错误消息;这可能是由Msxml2.ServerXMLHTTP对象的版本引起的。