簡體   English   中英

JSONP回調函數無法正常工作

[英]JSONP callback function not working correctly

我有jsonp回調功能。 來自服務器的響應是不確定的。我不知道問題出在哪里。 我為jsonp制作了RND。 我正在發布代碼

$.ajax({
         url : 'http://192.168.16.111:8081/MiddleWareUsman/androidServlet', 
         type: "GET",
         dataType: "jsonp",         
         crossDomain: true,
         async: false,
         data : {"fname": "chaaaaapiio","lname": "gya"},            
         jsonpCallback:  function(data, status){
            alert('callback');
            alert(data);
         },            
         success: function(data, status){
            alert('sucess');
         },
     error : function(xhr, ajaxOptions, thrownError) {          
         alert(thrownError);                        
         }
  });

Servlet代碼是

        String a=request.getParameter("fname");
        String b=request.getParameter("lname");
        String cb=request.getParameter("callback");     
        response.getWriter().write(cb+"("+a+" "+b+")");

首先,當您想覆蓋默認函數名稱時,使用jsonpCallback 如果為它分配一個函數,則該函數的返回值應為名稱。 給它一個返回undefined的函數只會破壞事情。

從您的對象中刪除jsonpCallback屬性 success處理事情。

其次,該servlet代碼將生成:

jQueryCallback23235(chaaaaapiio gya)

這不是有效的JavaScript。 您需要具有真實的JavaScript數據結構作為函數參數。

通常,JSONP響應將由對象文字組成:

jQueryCallback23235({ "something": "chaaaaapiio", "something": "gya")

找到一個用於生成JSON的Java庫,並使用該庫生成paren的內容,不要嘗試手工編寫JSON。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM