一个关于Jquery Ajax和ashx(IE,FirFox,Google)的小问题
最近在做一个项目,Js方面用Jquery和Josn相结合用的比较多,特别是Jquery的Ajax,但是今天我突然遇到一个诡异的问题。
一、配置服务器端。
新建一个Application的Project,添加一个ashx的文件,打算用这个ashx文件作为Jquery的Ajax的异步相应,在webconfig的HttpHandler中也配置好了。到这里服务器端的东西都已经搞好了,当然ashx里面的逻辑代码也写了一个测试Function了。
二、Web前台的调用
在web页面中引用Jquery的相关文件,添加一个input(button)同时添加上一个onclick的异步Function(使用Jquery的
$.ajax({
type: "POST",
url: url,
data: data,
dataType: "json",
success: cb,
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert("url:" + url + " error:" + errorThrown);
}
});)。
到这里,一起都准备好了。
三、测试
一下三种浏览器的测试我都是在Application的project那里直接Ctrl+F5的,生成的URL是IIS自动分配的端口号。
IE:我在IE中点击button触发异步的Function,第一次有返回,第二次没有,第三次没有,........奇怪了??有时候有返回有时候没有,怎么会这样的呢?nnd技术上的东西有时候就像1+1=2那样得就得唔得就返顺德那种的哦。
1. OK,那我就调试进去吧,有奇怪了,每次button触发异步的Function在服务上都有接收到啊,而且代码执行的逻辑都没有问题哦。
2. OK,那我看看Jqeury的errorFunction有返回什么信息吧,发现没有,只是提示说throw了一个ex而已。
3. OK,那行,我就用HttpWatch偷看一下从异步触发到返回的这个过程吧,发现有成功信息返回时没有什么问题(当然是偶尔成功的),发现有异常返回时返回的是ERROR_INTERNET_CONNECTION_ABORTED(The connection with the server has been terminated)。发诡异了为什么请求会terminated的呢?不知道。
4. 先不理会IE先。
Firfox:完全没有问题,每次的请求都有成功的返回。????为什么IE有时候行有时候不行呢?
Google:完全没有问题,每次的请求都有成功的返回。????为什么IE有时候行有时候不行呢?
测试到这里,我更晕了,为什么IE有时候行有时候不行呢?我还是不知道问题出现在哪里。
好了,我在想,怎么我之前做的一个项目中不是这样的呢?然后我对比了一下所有的相关配置,发现都是一样的呀,除了一个为,就是行的那个project是一个WebSite的project,而现在这个是一个Application的project。OK,那我就为这个Application的project创建一个VirtualPath吧,进行测试后发现在IE,Firfox和Google上都完全没有问题,之前IE不行IE都可以了哦。那究竟为什么会出现这样的问题呢?我google一下没有找到问题的所在。
呵呵,小弟不才,请教各位大侠,究竟是什么原因造成这样的呢?
浙公网安备 33010602011771号