学习AJAX其实有个很重要的应用,就是为了执行另外几个站点的ASP,返回结果。

真正用起来,发现2个问题,>_> 不许笑,一向做DELPHI,接触ASP不多的我,的确问题大堆。

第一个问题:

VBS的变量传递给JS。。。通过学习发现很简单的。。。

先看下我大体实现方法:

<%
dim sSrv1Link
sSrv1Link = "http://www.XXX.org/test1.asp?U=TESTUSER&M=111&E=222"
%>
<script type="text/javascript">
function synSvrData(str)
{
var xmlhttp;
if (str.length==0)
  {
  document.getElementById("txtHint").innerHTML="";
  return;
  }
//创建对象
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
//处理ONREADYSTATECHANGE事件,我们这里只相应服务器反馈成功的
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET",str,true);
xmlhttp.send();
}
</script>

上面这段代码的意思就是用AJAX实现访问一个ASP,并返回结果。

<script type="text/javascript">
var jsSvr='<%=sSrv1Link%>'; 
synSvrData(jsSvr)
</script>

看到没?这个才是关键:

var jsSvr='<%=sSrv1Link%>';

js使用VBS变量,为什么要这样?因为加密串那些都是VBS生成的。

本地测试OK,现在把访问文件换成其他服务器上的。。。

sSrv1Link = "http://www.XXX2.org/test1.asp?U=TESTUSER&M=111&E=222"

意思就是跨域!!!

这时候问题来了。。。代码执行后无返回,后来发现不是不返回,是XXX2服务器不响应!

百度大法~~~我查~~~

发现问题出现在 test1.asp 这个文件上!!!对!你没看错!

跨域请求,顾名思义,就是一个站点中的资源去访问另外一个不同域名站点上的资源。

为了节省口水,以下两端摘抄:

 

随着 Web2.0 和 SNS 的兴起,Web 应用对跨域访问的需求也越来越多,但是,在脚本中进行跨域请求是受安全性限制的,Web 开发人员迫切需要提供一种更安全、方便的跨域请求方式来融合(Mashup)自己的 Web 应用。这样做的一个好处就是可以将请求分摊到不同的服务器,减轻单个服务器压力以提高响应速度;另外一个好处是可以将不同的业务逻辑分布到不同的服务器上以降低负载。

值得庆幸的是,跨域请求的标准已经出台,主流浏览器也已经实现了这一标准。W3C 工作组中的 Web Applications Working Group(Web 应用工作组)发布了一个 Cross-Origin Resource Sharing(跨域资源共享,该规范地址:http://www.w3.org/TR/access-control/和http://dev.w3.org/2006/waf/access-control/) 推荐规范来解决跨域请求的问题。该规范提供了一种更安全的跨域数据交换方法。具体规范的介绍可以访问上面提供的网站地址。值得注意的是:该规范只能应用在类似 XMLHttprequest 这样的 API 容器内。IE8、Firefox 3.5 及其以后的版本、Chrome浏览器、Safari 4 等已经实现了 Cross-Origin Resource Sharing 规范,已经可以进行跨域请求了。

Cross-Origin Resource Sharing 的工作方式是通过添加 HTTP 头的方法来判断哪些资源允许 Web 浏览器访问该域名下的信息。然而,对于那些 HTTP 请求导致用户数据产生副作用的请求方法(特别是对于除了GET、某些 MIME 类型的 POST 之外的 HTTP方法),该规范要求浏览器对请求进行“预先验”,通过发送 HTTP 的 OPTIONS 请求头询问服务器有哪些支持的方法,在征得服务器的同意后,再使用实际的 HTTP 请求方法发送实际的请求。服务器也可以通知客户端是否需要将验证信息(如 Cookie 和 HTTP Authentication 数据)随同请求一起发送。

 

看了这么多,其实实现一句话:就是添加HTTP头!

先看看我们做测试用的原来的 test1.asp

<%
sUser=request.QueryString("U")    
response.write("XXX.org: " & sUser)
%>

下面添加跨域访问:

<%
response.AddHeader "Access-Control-Allow-Origin", "http://www.XXX2.org"
sUser=request.QueryString("U")    
response.write("XXX2.org: " & sUser)
%>
response.AddHeader "Access-Control-Allow-Origin", "http://www.XXX2.org"
对了,就这么一句话,跨域完成了,你再测试下,是不是OK了?
posted @ 2016-02-03 11:30 Vicen'sBlog 阅读(918) 评论(5) 推荐(1) 编辑
摘要: POST 请求 一个简单 POST 请求: xmlhttp.open("POST","demo_post.asp",true); xmlhttp.send(); 带参数: xmlhttp.open("POST","ajax_test.asp",true); xmlhttp.setRequestHea 阅读全文
posted @ 2016-02-02 16:40 Vicen'sBlog 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 什么是AJAX?异步JavaScript和XML。 AJAX是一种用于创建快速动态网页的技术。 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。 传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面 阅读全文
posted @ 2016-02-02 15:30 Vicen'sBlog 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 没做这行5年了,期间做了很多其它行业,随谈不上成功,也稍有收获。 然而新的项目,又将我拉回这个熟悉又陌生的行业。打开封尘已久的DELPHI、VC、Dreamweaver。。。一切都那么熟悉而陌生。 5年间技术发展如此之大。。。以至于现在看看很多新下载的代码,尽然一堆看不懂。 新项目是做个类似饿了吗的 阅读全文
posted @ 2016-02-01 11:52 Vicen'sBlog 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 从MYIE开始用,直到MYIE更名为遨游,可以说我见证了这个浏览器的发展。也记不清用了多少年了,总觉得用了很久很久,期间也换过两次别的浏览器,但还是都换回了遨游。自从遨游开始“壮大”,我开始越来越不喜欢这个浏览器,每次的更新开始围绕着所谓的跑分提高了多少多少,但说实话,我一点没有感觉到!随着遨游越来越臃肿,随便开个淘宝网再开个新浪网,遨游的几个进程消耗我将近1G的内存,试问这还是浏览器吗?这是网游吧!!!开个淘宝买个东西,关闭页面时经常假死,有时候过个10秒自己恢复了,有时候必须从任务管理器里面终止占用最大内存的遨游进程。我真的不懂现在软件开发公司都是怎么了,你开发浏览器它就是浏览器,用户要用 阅读全文
posted @ 2012-05-30 10:09 Vicen'sBlog 阅读(6972) 评论(161) 推荐(14) 编辑
摘要: 最近我写的几款商业软件相继出现误报毒的问题,卡巴、瑞星都报(金山和QQ电脑管家就不说了,垃圾中的战斗机)。最早我以为是因为加壳压缩,但后来想想不对啊,UPX不是什么高端壳,怎么会被杀呢?现在杀毒软件都是虚拟机技术脱壳的,很容易就把UPX脱了。为什么说金山和QQ电脑管家是垃圾呢?因为他们不管你代码写了什么,哪怕一个空的程序,只要加壳就报毒,你说这种所谓的安全软件是谁开发的呢?等于杀毒都不需要动脑子,直接看壳!对!我承认很多木马喜欢加壳来减小大小,但正规软件就不能加壳降低大小吗?压缩的目的是让客户在下载更新时更快,难道这个也违法吗?经过一段时间对代码那些的分析,始终没找到病根。然而最近写新项目时, 阅读全文
posted @ 2012-05-29 17:36 Vicen'sBlog 阅读(1712) 评论(6) 推荐(0) 编辑
摘要: 10月25日更新了最新测试的结果,在文章中用红色字体标注出来了。皮肤这东西很多人褒贬不一,有人认为程序做的好就行了,界面还是保持原生态来的稳定。的确,稳定是程序至关重要的一点,离开这点其他任何都无从谈起,但不可否认,无论是微软、苹果,还是大众用户,审美观越来越高,试想同样的QQ软件或者酷狗软件,功能稳定性相同,你是喜欢带皮肤漂亮的还是喜欢原生态的呢?因此,程序界面美化也是一个产品非常重要的一点。做皮肤其实是项浩大的工程,从美工设计、到贴图、到程序设计,都非常的麻烦,如果不是一个非常成熟的产品且有很大的用户群体,并且公司具有相当实力,一般都不会去自己做皮肤,毕竟涉及的东西太多,一旦出现问题,那将 阅读全文
posted @ 2011-10-23 13:30 Vicen'sBlog 阅读(4953) 评论(2) 推荐(2) 编辑
摘要: StyleBook 介绍及VICEN对皮肤控件的一些看法可以说StyleBook的出现,简直是皮肤控件厂商的噩梦,因为用户可以通过StyleBook快速切换控件样式,而不需要在去购买第三方换肤控件,对于免费并且是官方集成的StyleBook来说,优势不言而喻。因此,以后的皮肤控件除非有自己的特色,例如Raize,提供了很多系统没有的控件,并且有自己的独特的外形风格,否则很难在发展下去。我们很期待有一套类似QQ样的界面控件套件,可以换肤、切换窗口样式颜色、跟换窗口背景图片等。先来看看StyleBook为我们提供了哪些默认的界面风格,这些界面风格都被安装在:..\Program Files\Emb 阅读全文
posted @ 2011-10-03 20:27 Vicen'sBlog 阅读(4146) 评论(3) 推荐(1) 编辑
摘要: 很多朋友装好XE2以后会和我一样,发现我们D7延续的控件安装方法在XE2上面不好使了,其实这是因为我们跳跃了中间几版的问题,安装依然简单,只是过程稍微变化了。由于FireMonkey本身特性所至,因此以前所有的VCL可视化控件都无法用了,部分非可视化控件还是可以直接安装的。所以建议你如果要做老程序移植,最好等上一段时间,等大部分控件都更新为FOR XE2的时候在进行移植,除非你可以抛弃原来的控件,另行实现。1) 首先打开所需要安装控件的安装文件,点击open project... (有些非可视的老控件直接打开DPK文件即可)2) 以安装DCPcrypt为例,打开控件工程后,在project m 阅读全文
posted @ 2011-10-03 17:53 Vicen'sBlog 阅读(5308) 评论(0) 推荐(1) 编辑
摘要: 盒子提供了Delphi XE2下载及激活工具,需要的朋友赶快下载去吧。巧妇难为无米之炊,Delphi XE2终于能下载了,而且还是UPDATE1的版本,并且能激活。研究嘛!总不能我学习也买套正版吧~~~ ^_^激活工具下载:Keygen(partial)+patchRadStudioXE2[国庆最新版]ThankPingos!解压密码:pizzaefichiKeygen(partial)+patchRadStudioXE2Thisismysolution,thereversingisanhobbyforme,ifyouusethesoftwareforcommercialpurposesbuy 阅读全文
posted @ 2011-10-03 11:49 Vicen'sBlog 阅读(8464) 评论(3) 推荐(2) 编辑
点击右上角即可分享
微信分享提示