gpt4 book ai didi

jquery - 如何处理 .ajaxSubmit() 调用返回的数据?

转载 作者:行者123 更新时间:2023-12-01 00:08:38 25 4
gpt4 key购买 nike

我正在使用 Jquery 表单插件来提交这样的表单数据。

    $('#AddLocalImageForm').ajaxSubmit({
beforeSubmit: function() { alert('b4'); },
success: function(data) { alert('afa');},
dataType: 'json'
});


<form id="AddLocalImageForm" action="Service/UploadCustImage.ashx" method="post" enctype="multipart/form-data">
<input type="file" name="CustImage" id="CustImage" />
<br />
<label for="ImageName">Name</label>
<input type="text" name="ImageName" id="ImageName"/>
<br />
<input type="submit" />
</form>

我发布数据的页面是一个 ashx 页面,其中包含

context.Response.ContentType = "application/json";

并返回带有

的数据
context.Response.Write(JsonData);

我可以看到所有内容都已正确发布,并且我正在获取正确的 Json 数据,但总是提示我从浏览器下载 Json 数据。我想做的是能够在后台获取返回的数据并更新一些Dom元素。beforeSubmit 函数会执行,但 success 函数永远不会执行。如果我从插件sample复制代码页面我也得到同样的结果。

如何才能让返回的数据由函数处理而不是提示我下载?

更新:因此,如果我将处理发布数据的 ashx 页面上的内容类型更改为

context.Response.ContentType = "text/html";

系统不再提示我下载文件,但我仍然无法处理返回的数据,因为成功函数从未执行。我是否需要告诉它它成功了,或者如果返回数据,它就假设成功了?

最佳答案

回答我自己的问题,希望有一天能对其他人有所帮助。

所以看来 success 从未运行的原因是因为它不相信请求成功。如果我更改为

            $('#AddLocalImageForm').ajaxSubmit({
beforeSubmit: function() { alert('b4'); },
success: function() { alert('Run on Success'); },
error: function(request, errordata, errorObject) { alert(errorObject.toString()); },
dataType: 'json'
});

将 ASHX 的 ContentType 设置为

   context.Response.ContentType = "text/html";

我收到一个错误,表明 ASSX 返回无效的 json。因此,如果我注释掉 dataType 选项,例如

                $('#AddLocalImageForm').ajaxSubmit({
beforeSubmit: function() { alert('b4'); },
success: function() { alert('Run on Success'); },
error: function(request, errordata, errorObject) { alert(errorObject.toString()); }
//dataType: 'json'
});

系统不会提示我下载文件,并且能够处理返回的 Json;

哎哟wwwwww!!!

关于jquery - 如何处理 .ajaxSubmit() 调用返回的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4318178/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com