ExtJS中提交的响应有问题(JSON中的响应,但HTML输入的地方)
Have issue with response of submit in ExtJS (response in JSON but somewhere HTML entered)
我得到这个响应:
{"success":true,"errorCode":-1,"error":""}
JSON中没有HTML,但js表示已输入:
uncaught exception: You're trying to decode an invalid JSON String: <pre>{"success":true,"errorCode":-1,"error":""}</pre>
代码:http://www.pasteall.org/30057/javascript
这个问题已经解决了,当你上传一个文件时,ExtJS提交无法处理json响应,这看起来很奇怪。如果你在html上制作并转换violà,你会在.上得到
$this -> output -> set_content_type('text/html');
所有的问题
您所经历的行为实际上在ExtJS API文档中有文档记录(尽管隐藏得很好)-请参阅Ext.form.Basic.hasUpload()方法的描述。
简而言之,文件上传不是由典型的Ajax XMLHttpRequests
执行的。它使用隐藏的iframe
元素。因此,引用ExtJS文档:
如果服务器使用JSON发送返回对象,则"内容类型"标头必须设置为"text.html"。。。
这正是你最终解决问题的方式——所以,这解释了为什么它确实有效。所以它"不是一个bug,而是一个特性"-D
在没有看到代码的情况下很难分析问题,所以如果您可以添加客户端的代码片段,这可能会有所帮助。
无论如何,结果似乎是以html格式返回的,即包含非json数据。检查结果中包含标签的原因。
还要检查服务器页面的配置——应该对其进行正确配置,以便返回JSON格式。
它还解释了为什么你的结果状态是成功。这是因为对服务器操作的调用成功了,即结果返回到客户端而没有任何错误。
现在,在服务器将结果返回给客户端后,存储尝试操作结果数据,但没有成功,因为内容不是JSON格式。
命令Ext.JSON.decode('{"success":true,"errorCode":-1,"error":""}');
应该可以很好地解析JSON响应。
你确定错误并不是它所说的那样吗?你的回复中是否意外包含了<pre>...</pre>
标签?
我在插入文件字段时也遇到了同样的问题。如果你删除它,它就起作用了。问题并非来自回应本身。您必须在服务器端管理上传文件。
在服务器和客户端之间,响应从"json"转换为html响应。
请参阅使用Node.js、Express和Mongoose 上传图像
- 如何在 JavaScript 和 HTML 中更改对输入框的提示响应
- 如何在jquery ajax成功html响应中找到输入隐藏元素
- 捕获所有关键输入,直到以响应式编程方式按下 ENTER
- 响应于一个“;输入“;在<输入>领域
- html5画布上的键输入不总是有响应
- HTML输入日期,响应所选值
- 响应式引导按钮,输入组中带有下拉列表
- 仅当鼠标不在输入字段上时,JQUERY 键控函数才会响应
- [ jQuery/Datatable ]:数据表无响应,禁用输入搜索
- HTML 范围输入在尝试移动时无响应
- 使用 processData 和 contentType 时的 Ajax 响应为 0.输入='文件[]'
- 在 aspx 页上输入触发响应的键.重定向
- HTML表单对点击“输入”按钮没有响应
- 如何创建一个响应单击或输入按下的 javascript 函数
- 我可以't使我的线条粗细对修改后的输入做出正确响应
- 如何使直方图中的标签对动态用户输入做出响应
- ExtJS中提交的响应有问题(JSON中的响应,但HTML输入的地方)
- 在ajax响应中从html获取输入值
- 如何在JavaScript中动态创建的输入字段中更新特定的输入字段,ajax从PHP响应
- HTML5表单输入响应输入键