关于form提交到某API地址后,接收返回的json的问题

问题描述

请教各位大侠,现在有个需求是这样的:1.一个公司需要我公司的信息,他弄了个API地址http://xxxxxx/xxxxx?keyCode=xxxx,由于保密问题,就这意思吧,需要向这个API地址传递xml文件的内容2.格式里要求,form的id和name必须是xmlform3.form里必须有一个文本框,id和name也必须是xmlmsg4.然后生成一个xml文件,把文件里的所有文本内容写在文本框里5.form里必须有一个submit按钮,点击后会提交form6.结果会返回一个json目前我已实现如下:页面:<formid="xmlform"action="http://xxxxxx/xxxxx?keyCode=xxxx"method="post">xmlmsg:<inputid="xmlmsg"runat="server"type="text"name="xmlmsg"value=""/><inputtype="submit"value="Submit"id="btn"/></form>

后台:protectedvoidPage_Load(objectsender,EventArgse){xmlmsg.Value="<?xmlversion="1.0"(……此处省略一万字文件内容,保证文件内容没问题,反正就是xml文件格式的)";}

大家受累看一下,页面要求必须这种格式。目前倒是可以提交成功了,但提交以后那个返回的所谓json却是弹出一个下载框,下载的文件没有后缀名,但保存后用文本编辑器打开,里边就一个"OK"字样(有那两个双引号)请各位大侠帮帮忙,看有没有办法截获返回的内容,不弹出下载框,我就可以批量传值,然后把返回值显示在网页上了,谢谢大家,可以用jquery

解决方案

本帖最后由 dongyingdeliulangzhe 于 2015-07-20 18:56:33 编辑
解决方案二:
你不能用form提交吧,这样变成前端可视化了,你要用后台代码去调用api,用request请求数据吧
解决方案三:
引用1楼myhope88的回复:

你不能用form提交吧,这样变成前端可视化了,你要用后台代码去调用api,用request请求数据吧

但是对方公司要求这么弄,他说他的API地址发送后返回个json,现在我没办法截获这个json,只显示出一个下载框,文件名叫xmlmessage,没有后缀名,下载保存后,文本编辑器打开显示的是"OK"(带双引号)或者其他的返回结果信息,比如“文件格式不正确”之类的,那就是文件内容的事儿了,主要现在没办法截获他返回的所谓json。我也用ajax提交过表单,url是API地址,参数是xmlmsg:'(文本框值)',但提交直接就失败,什么反应也没有,看来他只能用他要求的方式提交了,难道他可以读取form里的元素?所以要求文本框和form的id和name?这就不清楚了
解决方案四:
貌似需要指定返回数据的格式吧,你看下他返回的数据中contentType是什么格式。好像ie的话返回text/html这样的会把返回结果变成下载东西那样的
解决方案五:
引用楼主dongyingdeliulangzhe的回复:

目前倒是可以提交成功了,但提交以后那个返回的所谓json却是弹出一个下载框,下载的文件没有后缀名,但保存后用文本编辑器打开,里边就一个"OK"字样(有那两个双引号)请各位大侠帮帮忙,看有没有办法截获返回的内容,不弹出下载框,我就可以批量传值,然后把返回值显示在网页上了,谢谢大家,可以用jquery

它返回的就是“OK"而已。别相信他们说的鬼话,应该相信测试结果。
解决方案六:
引用2楼dongyingdeliulangzhe的回复:

但是对方公司要求这么弄,他说他的API地址发送后返回个json,现在我没办法截获这个json,只显示出一个下载框,文件名叫xmlmessage,没有后缀名,下载保存后,文本编辑器打开显示的是"OK"(带双引号)或者其他的返回结果信息,比如“文件格式不正确”之类的,那就是文件内容的事儿了,主要现在没办法截获他返回的所谓json。我也用ajax提交过表单,url是API地址,参数是xmlmsg:'(文本框值)',但提交直接就失败,什么反应也没有,看来他只能用他要求的方式提交了,难道他可以读取form里的元素?所以要求文本框和form的id和name?这就不清楚了

你的2、3、4、5的描述都是错误的。我不知道谁给你描述的这个,建议你找那个给你描述这个做法的人去纠结,你只到告诉她“你做一个啊?!”。因为,要用程序提交数据,根本不是这种2、3、4、5的互联网网页的概念,而是直接用程序提交http命令的概念。你这个问题属于跟错了领导,错在领导太垃圾,而你在他还没有提高水准时没有必要替他去做描述。
解决方案七:
2、3、4、5是一个完全错误、外行、误导你的描述。你如果主动用一个正确的方法实现了,不落好反而可能得罪这种垃圾领导。
解决方案八:
引用3楼lovesheng1212的回复:

貌似需要指定返回数据的格式吧,你看下他返回的数据中contentType是什么格式。好像ie的话返回text/html这样的会把返回结果变成下载东西那样的

太对了朋友,就是下载框框,不知道你有没有方法截获呢?
解决方案九:
我曾经也想着用form提交数据视图获取返回的json数据,但是却忽略了form提交后会刷新页面,所以得到和你类似的结果.你可以想着怎样让页面不刷新来得到json
解决方案十:
正解,就是设定contentType的问题引用3楼lovesheng1212的回复:

貌似需要指定返回数据的格式吧,你看下他返回的数据中contentType是什么格式。好像ie的话返回text/html这样的会把返回结果变成下载东西那样的

解决方案十一:
引用9楼hanjun0612的回复:

正解,就是设定contentType的问题Quote: 引用3楼lovesheng1212的回复:
貌似需要指定返回数据的格式吧,你看下他返回的数据中contentType是什么格式。好像ie的话返回text/html这样的会把返回结果变成下载东西那样的

嗯。楼主你还不新,直接不要浏览器,拿fiddler之类的工具测试吧,保准还是“ok”

时间: 2024-09-21 01:55:31

关于form提交到某API地址后,接收返回的json的问题的相关文章

ajax与隐藏form提交的利与弊

 本篇文章主要是对AJAX提交与FORM提交的区别进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助 现在来对比一下ajax与隐藏form提交的利与弊.   1.隐藏form提交,更新数据完成后,需要转到一个空白页面再对原页面进行提交后处理:ajax则不用,可以直接返回原页面进行提交后的处理.可见ajax可以比隐藏form提交少增加一个页面.   2.ajax出于安全性考虑,不能对文件进行操作,所以就不能通过ajax来实现文件上传,而通过隐藏form提交则可以实现这个功能,所以这就是

AJAX提交与FORM提交的区别说明_AJAX相关

现在来对比一下ajax与隐藏form提交的利与弊. 1.隐藏form提交,更新数据完成后,需要转到一个空白页面再对原页面进行提交后处理:ajax则不用,可以直接返回原页面进行提交后的处理.可见ajax可以比隐藏form提交少增加一个页面. 2.ajax出于安全性考虑,不能对文件进行操作,所以就不能通过ajax来实现文件上传,而通过隐藏form提交则可以实现这个功能,所以这就是目前用隐藏form提交的主要用途. 现在接下来讲述如何通过隐藏form来实现文件上传 1)首先定义一个用于填写表单内容的f

AJAX提交与FORM提交的区别说明

现在来对比一下ajax与隐藏form提交的利与弊. 1.隐藏form提交,更新数据完成后,需要转到一个空白页面再对原页面进行提交后处理:ajax则不用,可以直接返回原页面进行提交后的处理.可见ajax可以比隐藏form提交少增加一个页面. 2.ajax出于安全性考虑,不能对文件进行操作,所以就不能通过ajax来实现文件上传,而通过隐藏form提交则可以实现这个功能,所以这就是目前用隐藏form提交的主要用途. 现在接下来讲述如何通过隐藏form来实现文件上传 1)首先定义一个用于填写表单内容的f

thinkphp一个页面的form提交后,然后给指定页面返回一个值。

问题描述 thinkphp一个页面的form提交后,然后给指定页面返回一个值. thinkphp一个页面的form提交后,然后给指定页面返回一个值.那个页面一直在另外一个窗口,请问一直打开的那个页面如何获取到传过来的值 解决方案 不是在一台机器上面,逻辑是这样的.后台在电脑上操作,我办完一个事情然后后台点提交存入数据库.然后平板电脑就提示对工作人员态度投票.然后平板电脑那边的页面就可以操作了.

上传-jQuery ajax form提交在IE8下不执行回调函数

问题描述 jQuery ajax form提交在IE8下不执行回调函数 // 上传文件function myUploadExcel(obj) {var options = { url : ""${ctx}/ins/pro/upLoadTempFile.do?filename=""+obj.value dataType : ""text"" beforeSubmit : function(formDatajqFormoption

jquery序列化form表单使用ajax提交后处理返回的json数据

 这篇文章主要介绍了jquery序列化form表单,使用ajax提交后处理返回的json数据的示例,需要的朋友可以参考下 1.返回json字符串:    代码如下: /** 将一个字符串输出到浏览器 */     protected void writeJson(String json) {         PrintWriter pw = null;         try {             servletResponse.setContentType("text/plain;cha

easyui datebox- 请教个问题, 我 datebox , 初始化 一个值, 为什么 form 提交的时候是空的,

问题描述 请教个问题, 我 datebox , 初始化 一个值, 为什么 form 提交的时候是空的, 有人么,, 请教个问题, 我 datebox , 初始化 一个值, 为什么 form 提交的时候是空的, 一定要手动选中一个值才可以, 界面上可以看到已经初始化的日期是正确的. 点击提交, form提交的数据中这个date的时间没有数据.自己选中一个日期后,在点提交,提交的数据中这个date 的值有数据 createEmptyTime('#next_start_time'); $('#next

C# web 页面Form提交iframe加载同时进行,iframe无法加载

问题描述 C# web 页面Form提交iframe加载同时进行,iframe无法加载 由于页面处理时间长,我自己做了个进度条,就是一个静态也页面,ajax每秒请求一次看处理到 哪儿了. 这个静态页面在新窗口打开一切正常,但是放到处理页面用iframe打开无法加载 ,src的地址正常,用火狐浏览器重新为src赋值(值不变)就能正常显示,用js重新为src赋值也不行, 解决方案 解决方案二: 这是用火狐的ifrbug查看元素显示的 解决方案三: 关于Iframe无法加载的问题

frame-关于A页面的form提交跳转时请求B服务器的资源的问题求助!

问题描述 关于A页面的form提交跳转时请求B服务器的资源的问题求助! 一个域名映射多台服务器A (192.168.2.110) B (192.168.2.111).用户登录时请求的A服务器的 /logon .登录成功后要跳转到B服务器上的index.jsp上.但是地址栏要一直显示是域名. 解决方案 要想做到这一点就不能跳转,只能在logon的服务器端程序中使用webclient一类的库去下载index.jsp到服务器A,再传回客户端.相当于反向http代理.