通过获取JavaScript读取的表单发送JSON

通过获取JavaScript读取的表单发送JSON,javascript,jquery,json,post,get,Javascript,Jquery,Json,Post,Get,我被要求为一个web应用程序创建一个函数,在这个函数中,只要单击应用程序Ruby on Rails应用程序中的一个按钮,我就会生成一个文件,其中包含的信息可以由应用程序B Jboss/Maven web App解释 从web应用程序A打开一个新页面,并在web应用程序B中显示计算结果 来自web应用程序A的计算信息当前是一个json对象,将在gson api上发送,在web应用程序B上执行的计算是在javascript中完成的 因此,到目前为止,我正在使用表单发送数据,并通过GET请求打开新页面

我被要求为一个web应用程序创建一个函数,在这个函数中,只要单击应用程序Ruby on Rails应用程序中的一个按钮,我就会生成一个文件,其中包含的信息可以由应用程序B Jboss/Maven web App解释

从web应用程序A打开一个新页面,并在web应用程序B中显示计算结果

来自web应用程序A的计算信息当前是一个json对象,将在gson api上发送,在web应用程序B上执行的计算是在javascript中完成的

因此,到目前为止,我正在使用表单发送数据,并通过GET请求打开新页面,但我担心GET请求的局限性,以及如何在启动时从web app B的javascript检索信息

以下是我目前正在做的事情

Web应用程序A json对象

{ places: [ { latitude: 45.1, longitude: 15.2, city: 'Croatia' },
 { latitude: 30.254528,
   longitude: -97.84536,
   city: 'Regents School of Austin, 3230 Travis Country Circle, Austin, TX 78735, USA' },
 { latitude: 46.22764, longitude: 2.213749, city: 'France' },scores:[ 0,
 0,
 0,
 0.0055555557,
 0,
 0,
 0 ],transmissions: [ [ 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 ],
 [ 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 ],
 [ 0, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 2, 1, 1, 1 ],
 [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] ] }'"
JQuery创建的表单代码:

$('body').append($('<form/>').attr({
    'action': 'http://0.0.0.0:8080/webAppB',
        'method': 'get',
        'target': '_blank',
        'id': 'centrality'
}).append($('<input/>').attr({
    'type': 'application/json',
        'name': 'jsRequest',
        'value': JSON.stringify(arguments)
}))).find('#centrality').submit();
然后在启动时执行操作

我传递给web app B的信息大小会有所不同。其中一些json请求很可能超过2 kb

当前的get参数如下所示

jsRequest="{\"places\"%3A[{\"latitude\"%3A45.1%2C\"longitude\"%3A15.2%2C\"city\"%3A\"Croatia\"}%2C{\"latitude\"%3A30.254528%2C\"longitude\"%3A-97.84536%2C\"city\"%3A\"Regents+School+of+Austin%2C+3230+Travis+Country+Circle%2C+Austin%2C+TX+78735%2C+USA\"}%2C{\"latitude\"%3A46.22764%2C\"longitude\"%3A2.213749%2C\"city\"%3A\"France\"}%2C{\"latitude\"%3A53.41291%2C\"longitude\"%3A-8.24389%2C\"city\"%3A\"Ireland\"}%2C{\"latitude\"%3A37.09024%2C\"longitude\"%3A-95.71289%2C\"city\"%3A\"United+States\"}%2C{\"latitude\"%3A55.37805%2C\"longitude\"%3A-3.435973%2C\"city\"%3A\"United+Kingdom\"}%2C{\"latitude\"%3A-38.416096%2C\"longitude\"%3A-63.616673%2C\"city\"%3A\"Argentina\"}%2C{\"latitude\"%3A23.424076%2C\"longitude\"%3A53.847816%2C\"city\"%3A\"United+Arab+Emirates\"}%2C{\"latitude\"%3A56.130367%2C\"longitude\"%3A-106.34677%2C\"city\"%3A\"Canada\"}%2C{\"latitude\"%3A49.817493%2C\"longitude\"%3A15.472962%2C\"city\"%3A\"Czech+Republic\"}%2C{\"latitude\"%3A12.879721%2C\"longitude\"%3A121.77402%2C\"city\"%3A\"Philippines\"}%2C{\"latitude\"%3A41.87194%2C\"longitude\"%3A12.56738%2C\"city\"%3A\"Italy\"}%2C{\"latitude\"%3A51.16569%2C\"longitude\"%3A10.451526%2C\"city\"%3A\"Germany\"}%2C{\"latitude\"%3A60.128162%2C\"longitude\"%3A18.643501%2C\"city\"%3A\"Sweden\"}%2C{\"latitude\"%3A52.132633%2C\"longitude\"%3A5.291266%2C\"city\"%3A\"The+Netherlands\"}%2C{\"latitude\"%3A46.818188%2C\"longitude\"%3A8.227512%2C\"city\"%3A\"Switzerland\"}%2C{\"latitude\"%3A50.503887%2C\"longitude\"%3A4.469936%2C\"city\"%3A\"Belgium\"}]%2C\"scores\"%3A[0%2C0%2C0.05347222%2C0%2C0.0125%2C0.34513888%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0.0055555557%2C0%2C0%2C0]%2C\"transmissions\"%3A[[0%2C1%2C1%2C0%2C0%2C1%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C1%2C0%2C0%2C0]%2C[0%2C0%2C1%2C0%2C0%2C1%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C1%2C0%2C0%2C0]%2C[0%2C1%2C0%2C0%2C1%2C3%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C2%2C1%2C1%2C1]%2C[0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0]%2C[1%2C0%2C1%2C0%2C0%2C2%2C0%2C0%2C1%2C0%2C0%2C1%2C1%2C0%2C0%2C0%2C0]%2C[1%2C1%2C3%2C1%2C3%2C0%2C2%2C1%2C1%2C1%2C1%2C1%2C1%2C2%2C1%2C1%2C0]%2C[0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0]%2C[0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0]%2C[0%2C0%2C1%2C0%2C2%2C1%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0]%2C[0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0]%2C[0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0]%2C[0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0]%2C[0%2C0%2C0%2C0%2C0%2C1%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0]%2C[0%2C1%2C2%2C0%2C0%2C2%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C1%2C1%2C0]%2C[0%2C0%2C1%2C0%2C0%2C1%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0]%2C[0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0]%2C[0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0]]}"
到目前为止,GET解析器不起作用,即使我编写/查找解析器,这个过程也可能无法完成所有数据集的工作

我曾尝试使用表单中的帖子,但它给了我以下错误:

网络错误:415不支持的媒体类型

但这只发生在表单上,我认为这是由于表单自动使用的缘故 application/x-www-form-urlencoded数据类型

如果我直接发表ajax文章,web应用程序b上的代码运行良好,但这不会显示包含我所需信息的网页。只是一个json响应,我正在进一步尝试在客户端javascript中发送和运行它


所以我想知道我是否采取了错误的方法

为什么你不能使用post?@meda我猜他想要一个纯客户端方法。JavaScript无法访问POST dataWell我正在尝试使用web应用程序B的现有代码,该代码使用JavaScript绘制数据。应用程序的设置比需要的复杂得多,但涉及的各方比我多,因此我需要使用我所拥有的。那么,您当前的问题到底是什么?代码不起作用吗?性能问题?如果您只想查看您的代码或您可能想尝试的最佳实践,那么您可能会遇到一些限制
jsRequest="{\"places\"%3A[{\"latitude\"%3A45.1%2C\"longitude\"%3A15.2%2C\"city\"%3A\"Croatia\"}%2C{\"latitude\"%3A30.254528%2C\"longitude\"%3A-97.84536%2C\"city\"%3A\"Regents+School+of+Austin%2C+3230+Travis+Country+Circle%2C+Austin%2C+TX+78735%2C+USA\"}%2C{\"latitude\"%3A46.22764%2C\"longitude\"%3A2.213749%2C\"city\"%3A\"France\"}%2C{\"latitude\"%3A53.41291%2C\"longitude\"%3A-8.24389%2C\"city\"%3A\"Ireland\"}%2C{\"latitude\"%3A37.09024%2C\"longitude\"%3A-95.71289%2C\"city\"%3A\"United+States\"}%2C{\"latitude\"%3A55.37805%2C\"longitude\"%3A-3.435973%2C\"city\"%3A\"United+Kingdom\"}%2C{\"latitude\"%3A-38.416096%2C\"longitude\"%3A-63.616673%2C\"city\"%3A\"Argentina\"}%2C{\"latitude\"%3A23.424076%2C\"longitude\"%3A53.847816%2C\"city\"%3A\"United+Arab+Emirates\"}%2C{\"latitude\"%3A56.130367%2C\"longitude\"%3A-106.34677%2C\"city\"%3A\"Canada\"}%2C{\"latitude\"%3A49.817493%2C\"longitude\"%3A15.472962%2C\"city\"%3A\"Czech+Republic\"}%2C{\"latitude\"%3A12.879721%2C\"longitude\"%3A121.77402%2C\"city\"%3A\"Philippines\"}%2C{\"latitude\"%3A41.87194%2C\"longitude\"%3A12.56738%2C\"city\"%3A\"Italy\"}%2C{\"latitude\"%3A51.16569%2C\"longitude\"%3A10.451526%2C\"city\"%3A\"Germany\"}%2C{\"latitude\"%3A60.128162%2C\"longitude\"%3A18.643501%2C\"city\"%3A\"Sweden\"}%2C{\"latitude\"%3A52.132633%2C\"longitude\"%3A5.291266%2C\"city\"%3A\"The+Netherlands\"}%2C{\"latitude\"%3A46.818188%2C\"longitude\"%3A8.227512%2C\"city\"%3A\"Switzerland\"}%2C{\"latitude\"%3A50.503887%2C\"longitude\"%3A4.469936%2C\"city\"%3A\"Belgium\"}]%2C\"scores\"%3A[0%2C0%2C0.05347222%2C0%2C0.0125%2C0.34513888%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0.0055555557%2C0%2C0%2C0]%2C\"transmissions\"%3A[[0%2C1%2C1%2C0%2C0%2C1%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C1%2C0%2C0%2C0]%2C[0%2C0%2C1%2C0%2C0%2C1%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C1%2C0%2C0%2C0]%2C[0%2C1%2C0%2C0%2C1%2C3%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C2%2C1%2C1%2C1]%2C[0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0]%2C[1%2C0%2C1%2C0%2C0%2C2%2C0%2C0%2C1%2C0%2C0%2C1%2C1%2C0%2C0%2C0%2C0]%2C[1%2C1%2C3%2C1%2C3%2C0%2C2%2C1%2C1%2C1%2C1%2C1%2C1%2C2%2C1%2C1%2C0]%2C[0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0]%2C[0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0]%2C[0%2C0%2C1%2C0%2C2%2C1%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0]%2C[0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0]%2C[0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0]%2C[0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0]%2C[0%2C0%2C0%2C0%2C0%2C1%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0]%2C[0%2C1%2C2%2C0%2C0%2C2%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C1%2C1%2C0]%2C[0%2C0%2C1%2C0%2C0%2C1%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0]%2C[0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0]%2C[0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0]]}"