[英]Cannot read property 'value' of undefined" on dojo/request/iframe post
我有一个图片上传功能,可以上传带有图片的表单,如下所示:
iframe(url, {
form: dom.byId("myform"),
handleAs: "json",
timeout: 5000,
method: "POST"
}).then(function () {
console.log("Success");
}, function (Err) {
console.log(Err);
});
在服务器端,我得到了图像,但是在客户端,我得到了TypeError:无法读取我[作为handleResponse]( http://ajax.googleapis.com/ajax/libs/dojo/1.9的undefined↵的属性'value' 。 2 / dojo / request / iframe.js:9:114 )↵在r( http://ajax.googleapis.com/ajax/libs/dojo/1.9.2/dojo/dojo.js:206:81 )”。我没有返回值!我没有得到引起错误的原因!请帮助!
从《 Dojo参考指南》中 :
重要提示:如果您的有效负载不是html或xml(例如text, JSON ),则服务器响应需要将内容包含在
<textarea>
标记中。 这是因为这是此提供程序知道何时成功加载内容的唯一跨浏览器方式。 因此,服务器响应应如下所示:
<html>
<body>
<textarea>
payload
</textarea>
</body>
</html>
解决此问题所需要做的就是将JSON响应包装在<textarea>
标记中。 原因是在iframe.js
,从第300行开始:
if(handleAs === 'xml'){
...
}else{
// 'json' and 'javascript' and 'text'
response.text = doc.getElementsByTagName('textarea')[0].value; // text
}
因此,在这里您会看到以下错误:“无法读取undefined
属性'value'。” Dojo在响应中找不到<textarea>
元素,因此doc.getElementsByTagName('textarea')
返回一个空数组。 空数组[]
的第0个元素是undefined
,对其取消引用将引发此错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.