[英]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.