Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jquery回调未被激发_Jquery_Ajax_Json_Jsp_Struts2 - Fatal编程技术网

jquery回调未被激发

jquery回调未被激发,jquery,ajax,json,jsp,struts2,Jquery,Ajax,Json,Jsp,Struts2,我一直在尝试使用struts和json在jsp中显示json数据。我正在使用jquery post将数据发送到action类,如果成功,它将启动一个回调函数jquery post。但是没有启动回调 我找不到这个网站上丢失的链接 这是我的密码 我的struts xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//D

我一直在尝试使用struts和json在jsp中显示json数据。我正在使用jquery post将数据发送到action类,如果成功,它将启动一个回调函数jquery post。但是没有启动回调

我找不到这个网站上丢失的链接

这是我的密码

我的struts xml

   <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
   "http://struts.apache.org/dtds/struts-2.0.dtd">

   <struts>

<constant name="struts.enable.DynamicMethodInvocation" value="false"></constant>
<constant name="struts.devMode" value="false" />
<constant name="struts.custom.i18n.resources" value="ApplicationResources"></constant>

<package name="default" extends="json-default">

  <action name="some" class="action.Testing">
    <result type="json">
     <param name="root">displaying</param>
     <param name="noCache">true</param>
    </result>

  </action>

 </package>

 </struts>

展示
真的
我的jsp页面如下所示

 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
  pageEncoding="ISO-8859-1"%>
  <%@ taglib prefix="s" uri="/struts-tags" %>
  <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  http://www.w3.org/TR/html4/loose.dtd">
 <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>


<SCRIPT type="text/javascript" src="javascript/json.js"></SCRIPT>
<SCRIPT type="text/javascript" src="javascript/jquery.js"></SCRIPT>
<SCRIPT type="text/javascript" src="javascript/jquery.form.js"></SCRIPT>
 <script type="text/javascript">

  function somecallback(displaying){


     var result = displaying.split(",");

  var dataintext = result[0];

    $('#sub').val(dataintext);

   }


  function test(){

    var input = { "text" : "testing entry data",
               "displaying" : "hello"
            };  

       $.post('some.action',input,somecallback,"json");
  }

    $(function(){
    $('#field').click(function(){
     test();
     return false;
     });

 </script>
 </head>
 <body>
 <s:form method="post">
 hello..
<s:submit id="field" value="click me too!!"></s:submit>
<s:textarea id="sub" name="tes" value="%{text}"></s:textarea>
<s:textarea id="second" name="tester"></s:textarea>
<div id="flag" style="height:100px;width:20px;">sfdsf</div>
<input type="text" id="hi" name="help" value="clicked here!!" />"
</s:form>
</body>
</html>


尝试更改链接脚本的顺序,jquery应该在喜欢使用jquery的任何文件之前

<SCRIPT type="text/javascript" src="javascript/jquery.js"></SCRIPT>
<SCRIPT type="text/javascript" src="javascript/json.js"></SCRIPT>
<SCRIPT type="text/javascript" src="javascript/jquery.form.js"></SCRIPT>

应该先调用jQuery库,然后再调用其他任何东西。乍一看,这些脚本似乎有问题。尝试重新安排脚本并将jquery.js放在首位。

最终解决了问题。这是导致我找到解决方案的两个变化

1) 正如adam和charles在上面提到的,jquery.js应该高于要加载的任何其他javascript

2) 我使用的jQueryJavaScript是1.2.3版本,它不支持我想要实现的功能,所以我下载了最新版本,即,。版本1.6.2,这实际上支持我想要的


谢谢。

由于您包含三个不同的脚本,您是否检查了是否有任何脚本以不同的方式定义jquery对象(如使用“$”符号)?这篇文章可能对你没什么帮助-->[link]“$”围绕着“jquery”,在js…@hemanth中,请更新你的文章,以反映当前不起作用的代码。请正确缩进并删除不需要的空行。重新排列有助于删除我提到的错误,但回调仍然没有启动。我使用了您所说的方法,将其包装在$.function(){}周围,但结果相同。。回拨没有启动。它可以追溯到动作类。是否与struts xml有关?此“”应包含来自json的值,即,。在这种情况下,“你好”在testarea。我正试图展示这一点。它不起作用。你是说$('#field')。单击(function())执行?如果是的话,那么我已经告诉过您,我已经像您一样通过将它包装在$(function())周围使它工作了。现在,我打算调用回调函数。这不能由您所展示的内容决定。如果我错了,请纠正我。试试$.post('some.url',input,somecallback(json){return true;}你的意思是这样的吗?$.post('some.action',input,somecallback(displaying){return true;});你有没有像我给你的第一个例子那样用json尝试过它?回调函数需要知道它期望返回什么样的数据。$.post('some.action',input,somecallback(json){return true;})和$.post('some.action',input,somecallback(json){return true;})都不起作用..它给出了'语法错误,插入')来完成方法调用'。。
$('#field').click(function(){
   test();
});