Javascript Ajax请求在Safari、Chrome中不起作用

Javascript Ajax请求在Safari、Chrome中不起作用,javascript,jquery,ajax,asp-classic,Javascript,Jquery,Ajax,Asp Classic,我有一个ajax请求,当单击链接下载文件时会触发。称为服务器端页面,该页面使用访问者下载的客户ID和文件名更新数据库。使用jquery1.5.1。以下是链接html: <a href="/downloads/whatever.zip" class="software">click here to download</a> 即使在firefox中收到错误消息,它也会更新数据库。在chrome和safari中,会收到错误消息,但不会更新任何内容 我尝试在ajax调用中使用以

我有一个ajax请求,当单击链接下载文件时会触发。称为服务器端页面,该页面使用访问者下载的客户ID和文件名更新数据库。使用jquery1.5.1。以下是链接html:

<a href="/downloads/whatever.zip" class="software">click here to download</a>
即使在firefox中收到错误消息,它也会更新数据库。在chrome和safari中,会收到错误消息,但不会更新任何内容

我尝试在ajax调用中使用以下设置,但在任何浏览器中似乎都没有什么不同:

contentType: "application/json; charset=utf-8",
dataType: "json", 'data' 

要在Safari和Chrome中实现这一点,我缺少什么?

您的Ajax请求使用POST,但不发布任何数据。您正在通过URL请求参数传递数据

尝试更改ajax类型以获得

type: "GET",      
url: "/validate/softwareDownloadedCustomer.asp?custID=<%=custID%>&fileName=" + theFileName, 
键入:“获取”,
url:“/validate/softwareddownloadedcustomer.asp?custID=&fileName=“+theFileName,
或者通过post数据传递参数

var dataToPost = 'custID=<%=custID%>&fileName=' + theFileName;

type: "POST",      
url: "/validate/softwareDownloadedCustomer.asp", 
data : dataToPost,
var-dataToPost='custID=&fileName='+文件名;
类型:“POST”,
url:“/validate/softwareDownloadedCustomer.asp”,
数据:dataToPost,

您的Ajax请求使用POST,但不发布任何数据。您正在通过URL请求参数传递数据

尝试更改ajax类型以获得

type: "GET",      
url: "/validate/softwareDownloadedCustomer.asp?custID=<%=custID%>&fileName=" + theFileName, 
键入:“获取”,
url:“/validate/softwareddownloadedcustomer.asp?custID=&fileName=“+theFileName,
或者通过post数据传递参数

var dataToPost = 'custID=<%=custID%>&fileName=' + theFileName;

type: "POST",      
url: "/validate/softwareDownloadedCustomer.asp", 
data : dataToPost,
var-dataToPost='custID=&fileName='+文件名;
类型:“POST”,
url:“/validate/softwareDownloadedCustomer.asp”,
数据:dataToPost,

我实际上找到了问题的原因-这是由于ajax请求被激活下载文件的链接中断。通过单击链接触发ajax请求。错误消息的请求状态为0,这意味着链接操作显然正在中断ajax请求。由于某种原因,IE中的请求显然没有被中断,但firefox、safari和chrome中的请求被中断,因此出现了错误消息。我在这里找到了相关信息:

在测试了ajax请求后,我知道情况是这样的,只需单击一个简单的按钮,而不是单击链接。它在所有浏览器中都能成功运行,只需单击一个按钮,就不会出现错误消息


解决方法不是使用AJAX,而是将用户发送到记录单击的服务器端页面,然后重定向到相应的下载链接。

我实际上找到了导致问题的原因-这是由于AJAX请求被激活下载文件的链接所中断。通过单击链接触发ajax请求。错误消息的请求状态为0,这意味着链接操作显然正在中断ajax请求。由于某种原因,IE中的请求显然没有被中断,但firefox、safari和chrome中的请求被中断,因此出现了错误消息。我在这里找到了相关信息:

在测试了ajax请求后,我知道情况是这样的,只需单击一个简单的按钮,而不是单击链接。它在所有浏览器中都能成功运行,只需单击一个按钮,就不会出现错误消息


解决方法不是使用AJAX,而是将用户发送到记录单击的服务器端页面,然后重定向到相应的下载链接。

如果在
ajaxError
中放置断点,并使用控制台进行调试,
type
exceptionThrown
的值是多少?另外,softwareDownloadedCustomer.asp返回什么(HTML、JSON等)?谢谢,我无法使用firebug控制台获取类型值和抛出的异常。使用alert时,“type”的值为“error”,我得到的“errorshown”值为空。抱歉说得这么含糊,我在使用firebug调试和获取错误参数值方面缺乏经验。“request.status”的值为“HTTP错误”,request.statusText的值为“0错误”。关于响应:softwareDownloadedCustomer.asp返回简单文本“数据已添加到服务器”。我已尝试将响应插入包含ajax请求的页面,如下所示:var response=XMLHttpRequest.responseText$(“#服务器响应”).innerHTML=响应;但由于收到错误消息,因此#serverResponse中没有显示任何内容。然而,在firefox和IE中,数据被发布到数据库中(我将数据插入到单独页面的记录内容写入),但数据不会使用chrome或safari发布到数据库中。如果在
ajaxError
中设置断点并使用控制台进行调试,
type
exceptionThrown
的值是什么?另外,softwareDownloadedCustomer.asp返回什么(HTML、JSON等)?谢谢,我无法使用firebug控制台获取类型值和抛出的异常。使用alert时,“type”的值为“error”,我得到的“errorshown”值为空。抱歉说得这么含糊,我在使用firebug调试和获取错误参数值方面缺乏经验。“request.status”的值为“HTTP错误”,request.statusText的值为“0错误”。关于响应:softwareDownloadedCustomer.asp返回简单文本“数据已添加到服务器”。我已尝试将响应插入包含ajax请求的页面,如下所示:var response=XMLHttpRequest.responseText$(“#服务器响应”).innerHTML=响应;但由于收到错误消息,因此#serverResponse中没有显示任何内容。然而,在firefox和IE中,数据发布在数据库中(我将数据插入到单独的页面中的记录内容写入其中),但使用chrome或safari不会将数据发布在数据库中。谢谢-我尝试将查询字符串数据保留在URL中并使用ajax type=“Get”,但没有成功。然后我尝试保留“POST”,并通过“data:dataToPost”而不是querystring传递参数,并在softwareDownloadCustomer.asp文件(使用json2库)中成功读取它。在IE中