jquery Ajax 通過jsonp的方式跨域提交表單

來源:互聯網
上載者:User

標籤:

  Jquery Ajax可以通過jsonp的方式跨域提交表單,至於什麼是跨域提交簡單說就是你的用戶端和服務端不在同一個網域名稱下或連接埠號碼不同也可以叫做跨域。

前台代碼:

$.ajax({             type : ‘get‘,             async: false,             url : ‘${pageContext.request.contextPath}/clue/uploadForm‘,             dataType : ‘jsonp‘,             data: {                         mydata : JSON.stringify(obj,fm),                         formId : formId                     },             jsonp: ‘callbackparam‘,             jsonpCallback:‘success_jsonpCallback‘,             success : function(json){                 //alert(json.message);                 result = json.message;             },              error : function(json,XMLResponse){                  //alert(XMLResponse.responseText+XMLHttpRequest.status);                  result = "返回資訊:" + json.message + "錯誤碼:" + XMLHttpRequest.status;             }        });


後台代碼:

/**     * 提交form表單資料     * @param request     * @param session     * @return     * @throws IOException      */    @RequestMapping(value ="uploadForm")    public void uploadForm(HttpServletRequest request, HttpServletResponse response,HttpSession session) throws IOException{        Map<String,Object> dataMap = new HashMap<String,Object>();
     dataMap.put("message","success");   String callbackparam = request.getParameter("callbackparam"); response.setCharacterEncoding("utf-8"); JSONObject json = JSONObject.fromObject(dataMap); System.out.println(callbackparam+"("+ json.toString() + ")"); response.getWriter().print(callbackparam+"("+ json.toString() + ")"); }

注意:
1.通過jsonp方式跨域傳回值不能為資料,其實為一段js代碼,所以如果是springmvc,不能使用@ResponseBody註解。

2.傳回值中要按照jsonp的格式,即callbackparam值加上“()”,括弧中為json字串

3.前台代碼中,jsonp屬性中callbackparam為回呼函數名稱變數名,jsonpCallback屬性為回呼函數名稱的值。

jquery Ajax 通過jsonp的方式跨域提交表單

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.