程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> ajax的異步請求-action響應ajax請求返回json類型執行不了success

ajax的異步請求-action響應ajax請求返回json類型執行不了success

編輯:編程綜合問答
action響應ajax請求返回json類型執行不了success

我的action能響應ajax請求,但是不知道是返回的不是json還是其他的問題,就是執行不了success,代碼如下:
jsp代碼:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>

<br> function change(proCode){<br> alert(&quot;1 &quot;+proCode);<br> $(&#39;#proCode&#39;).val(proCode); //讓第一個下拉框保持顯示選中的值<br><br> $(&#39;#cityCode&#39;).html(&quot;&quot;); //把ci內容設為空<br><br> var cityValue = $(&#39;#cityCode&#39;);<br><br> cityValue.append(&#39;<option value="">選擇CITY</option>&#39;);<br> $.ajax({ <br> url: &#39;/GP/address.action?proCode=&#39;+proCode,<br><br> type: &#39;post&#39;,<br><br> //data: {},<br><br> dataType: &#39;json&#39;,<br> //async:false,<br> cache:false,<br> success: function(opts) {<br><br> alert(opts.length);<br> if (opts!=null &amp;&amp; opts.length &gt; 0) {<br><br> var html = [];<br><br> for (var i = 0; i &lt; opts.length; i++) {<br><br> html.push(&#39;<option value="'+opts[i].cityCode+'">&#39;+opts[i].cityName+&#39;</option>&#39;);<br><br> }<br><br> cityValue.append(html.join(&#39;&#39;));<br><br> }<br><br> },<br> error: function(){<br> alert(&quot;error !&quot;);<br> }<br> });<br><br> }<br> <body><br> <table><br> <tr><br> <td width="10%"> <br> 省份&nbsp;&nbsp;<br> </td><br> <td width="30%"><br> <select name="province.proCode" id="proCode" onchange="change(this.value)"><br> <option value="0">--請選擇所在省份--</option><br> <s:iterator value="#request.prolist"><br> <option value="${proCode }">${proName }&nbsp;${proCode }</option><br> <a href="/s:iterator">/s:iterator</a><br> </select><br> </td><br> </tr><br> <tr><br> <td width="10%"><br> 城市&nbsp;&nbsp;<br> </td><br> <td width="30%"><br> <select name="city.cityCode" id="cityCode"><br> <option value="0" >--city--</option><br> </select><br> </td><br> </table><br> </body><br> </html></p> <p>action代碼:<br> public class AddressAction extends ActionSupport {</p> <pre><code>private static final long serialVersionUID = 1L; private IProvinceService proService; private ICityService cityService; private String proCode; private String opts; public String getProCode() { return proCode; } public void setProCode(String proCode) { this.proCode = proCode; } public String getOpts() { return opts; } public void setOpts(String opts) { this.opts = opts; } public IProvinceService getProService() { return proService; } public void setProService(IProvinceService proService) { this.proService = proService; } public ICityService getCityService() { return cityService; } public void setCityService(ICityService cityService) { this.cityService = cityService; } public String selectAddress() throws Exception { if(proCode==null)proCode=&quot;&quot;; System.out.println(&quot;proCode=&quot;+proCode); List&lt;City&gt; citylist = cityService.findByProCode(proCode); List&lt;Province&gt; prolist = proService.searchAll(); if(proCode!=null&amp;&amp;proCode!=&quot;&quot;) System.out.println(citylist.get(0).getCityName()); HttpServletRequest request = ServletActionContext.getRequest(); request.setAttribute(&quot;citylist&quot;, citylist); request.setAttribute(&quot;prolist&quot;, prolist); HttpServletResponse response = ServletActionContext.getResponse(); response.setContentType(&quot;application/json&quot;); response.setCharacterEncoding(&quot;UTF-8&quot;); PrintWriter writer = response.getWriter(); JSONArray array = JSONArray.fromObject(citylist); opts = array.toString(); writer.print(opts); return SUCCESS; } </code></pre> <p>}</p> <p>求大神賜教,謝謝!</p>

最佳回答:


你的citylist這個list裡面存放的對象 他的屬性字段都是基本數據類型麼,如果裡面有一個字段類型是 一個Object類型,那麼有可能執行JSONArray.formObject()這一句的時候,JSONArray裡面已經出錯了,你可以在這行代碼處 打斷點 進去看看是否 真的出現了 死循環錯誤

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved