相关文章
更多最近更新
更多jquery ajax方法url请求action没有返回json数据。
2019-03-25 13:50|来源: 网路
具体代码如下:
jquery代码
jsp页面代码
action代码
直接在地址栏输入http://localhost:8080/xxx/findNpcsByMapId?map.mapId=1 能得到json数据在网页上打开,但是在jsp中点击提交按钮却只能执行到“调用了”这一步,然后就没有返回了。
请教一下其中的问题。
问题补充:
没有数据返回,我认为是$.ajax没有执行成功但是又不知道错在哪里。
问题补充:把url直接写成'findNpcsByMapId&map.mapId=1’ 还是一样的问题。
问题补充:
确实,这里写错了。感谢!
jquery代码
$(function(){ $("#submButton").click(function(){ alert("點擊了"); getNpcsByMapId(1); }); }) function getNpcsByMapId(mapId) { var jsonObjs; alert("调用了"); $.ajax({dataType : 'json',url : 'findNpcsByMapId&map.mapId='+mapId,success : function(data){ alert("完成了"); jsonObjs = data; }}); // var npcs = new Array(); // for(var j = 0; j < jsonObjs.length; j++) { // npcs.push(jsonObjs[j].id,jsonObjs[j].name, // jsonObjs[j].pos1x,jsonObjs[j].pos1y,jsonObjs[j].pos1z, // jsonObjs[j].pos2x,jsonObjs[j].pos2y,jsonObjs[j].pos2z, // jsonObjs[j].pos3x,jsonObjs[j].pos3y,jsonObjs[j].pos3z, // jsonObjs[j].pos4x,jsonObjs[j].pos4y,jsonObjs[j].pos4z, // jsonObjs[j].pos5x,jsonObjs[j].pos5y,jsonObjs[j].pos5z, // jsonObjs[j].template.id); // } // document.getElementById("aa").innerHTML=npcs[1]; //callExternalInterface(npcs); }
jsp页面代码
<body> <form id="iii"> <input type="text" name="map.mapId"/> <input id="submButton" type="button" value="提交"></input> </form> <textarea rows="" cols="" id="aa" style="width: 800px;height: 600px"></textarea> </body>
action代码
@Action(results = { @Result(type = "json", params = { "excludeProperties", "maps,templates" }) }, value = "findNpcsByMapId") public String findNpcsByMapId() throws UnsupportedEncodingException { npcs = creatureService.getAllNpcByMap(map); return "success"; }
直接在地址栏输入http://localhost:8080/xxx/findNpcsByMapId?map.mapId=1 能得到json数据在网页上打开,但是在jsp中点击提交按钮却只能执行到“调用了”这一步,然后就没有返回了。
请教一下其中的问题。
问题补充:
timeroading 写道
alert 一下data看看有没有数据返回
没有数据返回,我认为是$.ajax没有执行成功但是又不知道错在哪里。
问题补充:把url直接写成'findNpcsByMapId&map.mapId=1’ 还是一样的问题。
问题补充:
timeroading 写道
'findNpcsByMapId&map.mapId='+mapId
你的url 有问题吧
'findNpcsByMapId?map.mapId='+mapId
你的url 有问题吧
'findNpcsByMapId?map.mapId='+mapId
确实,这里写错了。感谢!
相关问答
更多-
jquery ajax提交返回json数据,传递为空[2022-01-24]
返回的result是局部变量,只能在success中取到。默认的是异步请求,异步请求只能在ajax方法内部取到.可以设置async :false -
如何用jquery ajax 提交数据,然后返回数据类型为json,来表示数据是否成功?[2022-03-28]
和普通的接口访问一样啊。。。。。。。。。 自己定义一个规则 ,如果成功返回的是什么 失败返回的是什么 $.ajax(...) 提交以后。根据返回值判断处理的结果,并显示出来就行了啦。。。 假设 成功以后 输出的是 {result:'bingo'} 失败输出 {result:'fail'} 那么 回调函数中 function _ajaxcallback(returnvalue){ returnvalue.result=='bingo' ? //成功 : //失败 } -
您可以尝试添加"cache: false" 选项 。 You may try adding the "cache: false" option.
-
在AJAX请求中返回整个视图几乎总是不可能的。 相反,您希望返回XML,JSON或一大块HTML。 您可以通过在Controller中调用PartialView()返回部分HTML来返回一大块HTML。 如果要返回HTML,那么您的jQuery AJAX请求需要预期,因此将其dataType更改为html 。 然后在jQuery回调中,您可以只接收收到的HTML并将其附加到您的页面某处。 注意:您可以使用Request.IsAjaxRequest()返回AJAX数据或完整视图,并对两种请求使用相同的操作。 ...
-
我最近遇到这个问题,绊倒了这个问题。 我用一个更简单的方法解决了这个问题。 方法一 您可以从对象文字中删除dataType: 'json'属性... 方法二 或者您可以通过将您的数据作为Json返回,来做@Sagiv所说的内容。 发生此parserror消息的原因是当您简单地返回一个字符串或另一个值时,它不是真正的Json ,因此解析器在解析时失败。 所以如果你删除dataType: json属性,它将不会尝试将其解析为Json 。 使用其他方法,如果您确保将数据返回为Json ,则解析器将知道如何正确处理 ...
-
您需要使用同步ajax请求(不是典型的或推荐的)并将数据捕获到外部作用域中的变量中,或者弄清楚如何操作回调函数中的数据。 问题是ajax函数在ajax调用完成之前返回 - 它是异步的。 同步方式: function getCacheImage(direction) { var capture; jQuery.ajax({ url: json_request_string, aSync: false, ...
-
dataType属性用于表示您期望响应调用的数据类型,而不是您要发送的数据类型,因此您的调用期望获得JSON响应,而是获取纯文本。 The dataType property is used to signify the type of data you're expecting in response to the call, not the type of data you're sending, so your call is expecting a JSON response, but is get ...
-
使用Jquery ajax从action方法返回动态图像(Returning dynamic image from action method using Jquery ajax)[2021-11-10]
action方法不生成base64编码的字符串,它正在创建一个完整的文件响应。 因此,要刷新验证码图像,您不需要更新现有图像上的源,而是创建一个新的元素,并用它替换现有的验证码图像。 缓存很可能是一个问题,因此您需要生成一个唯一的字符串以附加到路径,例如随机数或当前日期时间,因此每个请求都是唯一的。 否则你改变你的动作方法以返回一个base64字符串,然后改变视图中的我不确定是否有更好的方法,但你可以尝试...赶上 $.ajax({ type: "GET", url: request_url, context: $('#meat'), async: true, beforeSend: function() { }, success: function (returndata, status, jqXHR) { var parsed ...为webmethod的返回类型创建一个类,例如, class Person { public int ID { get; set; } public string Value { get; set; } } 然后你可以像这样编写web方法, public Person GetPerson() { Person person = new Person(); person.ID = 1; person.Value = "test"; return person; ...