gpt4 book ai didi

javascript - YUI 3 IO Utility - 带文件上传的表单提交从 responseText 中删除 HTML

转载 作者:行者123 更新时间:2023-11-30 05:52:19 26 4
gpt4 key购买 nike

我正在使用 YUI3 IO Utility 提交带有文件的表单。来自服务器的响应包含 HTML,但在访问请求对象时会被剥离。

var form = Y.one('form');
Y.io(form.get('action'), {
method: form.get('method'),
form: {
id: form,
upload: true
},
on: {
complete: function(id, request) {
// The server returns a response like <div>response</div>
console.log(request.responseText);
// All HTML is stripped so it just prints 'response' to the console
}
}
});

这是否被视为默认行为?我几乎不敢相信无法获得完整的响应内容......服务器还将内容类型 header 正确设置为“text/html”。

感谢任何帮助!谢谢!

最佳答案

我刚刚看过 YUI3 源代码。 https://raw.github.com/yui/yui3/master/src/io/js/io-upload-iframe.js 中负责请求对象的几行是:

_uploadComplete: function(o, c) {
var io = this,
d = Y.one('#io_iframe' + o.id).get('contentWindow.document'),
b = d.one('body'),
p;

if (c.timeout) {
io._clearUploadTimeout(o.id);
}

try {
if (b) {
// When a response Content-Type of "text/plain" is used, Firefox and Safari
// will wrap the response string with <pre></pre>.
p = b.one('pre:first-child');
o.c.responseText = p ? p.get('text') : b.get('text');
Y.log('The responseText value for transaction ' + o.id + ' is: ' + o.c.responseText + '.', 'info', 'io');
}
else {
o.c.responseXML = d._node;
Y.log('The response for transaction ' + o.id + ' is an XML document.', 'info', 'io');
}
}
catch (e) {
o.e = "upload failure";
}

io.complete(o, c);
io.end(o, c);
// The transaction is complete, so call _dFrame to remove
// the event listener bound to the iframe transport, and then
// destroy the iframe.
w.setTimeout( function() { _dFrame(o.id); }, 0);
},

因此,一旦响应包含“正文”节点,它就会将正文内容作为“文本”返回。

o.c.responseText = p ? p.get('text') : b.get('text');

恕我直言,如果有 body 节点,则没有机会获得 innerHTML。我决定创建一个自定义的 IO 上传 Iframe 模块,该模块添加一个名为“responseHTML”的附加属性以及 body 节点的 innerHTML。

您可以从 Pastebin 获取源代码:http://pastebin.com/WadQgNP2

关于javascript - YUI 3 IO Utility - 带文件上传的表单提交从 responseText 中删除 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13994133/

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