ฉันกำลังเรียกใช้การเรียกใช้ async ของ getJSON ใน jQuery เพื่อดึงข้อมูลกลับเข้าและออกจากโค้ด Java ของฉัน ไม่ว่าด้วยเหตุผลใดก็ตาม ฉันได้รับข้อผิดพลาดอย่างต่อเนื่อง:
"Ajax Error: Error invoking generateSearchQuery([object Object])"
ฉันแก้ไขทั้งโค้ด jQuery และ Java แล้ว โค้ด Java รับข้อมูล JSON ประมวลผล และเขียนกลับโดยไม่มีปัญหา รหัส jQuery เตะข้อผิดพลาดเมื่อเข้าสู่วิธี getJson ภายในและพยายาม if(json.successful)
คำตอบคือ: {"error":{"message":"","title":"Error Generating Search Query"},"data":[Ljava.lang.String;@1e40c9f,"successful":"successful"}
ฉันทำงานกับการโทรแบบ async นี้มาสองสามวันแล้ว แต่ก็ยังไม่สามารถทำงานได้ มีความคิดอะไรบ้าง?
ฟังก์ชั่น jQuery:
generate : function(){
getJson(
Search.guid,
"generateSearchQuery",
{
"data": [
"val0",
"val1",
"val2",
"val3",
"val4"
]
}, function(json) {
Search.data = $.parseJSON(json.data);
$.each(Search.data, function(k, v){
$('#searchQuery').append(v + "\n");
});
});
},
ฟังก์ชั่นจาวา:
@AsyncService(name = "generateSearchQuery", permission = "")
public void generateSearchQuery(HttpServletRequest req, HttpServletResponse res) {
res.setHeader("Cache-Control", "no-cache");
JSONResult result = new JSONResult("Error Generating Search Query");
String[] arr = req.getParameterValues("data[]");
for(int i = 0; i< arr.length; i++){
arr[i] = "success"+i+"!";
}
result.put("data", arr);
try {
res.getWriter().print(result);
} catch (IOException e) {
// whatever
}
}
}
รับเจสัน:
function getJson(guid, service, parms, callback) {
beginWork();
$
.ajax( {
url : document.URL,
type : 'GET',
data : parms,
cache : 'false',
dataType : 'json',
headers : {
'framework-guid' : guid,
'async-service' : service
},
success : function(json) {
endWork();
if (json.successful) {
callback(json);
} else {
error(json.error && json.error.title ? json.error.title
: 'No Title Provided', json.error
&& json.error.message ? json.error.message
: 'No message provided for service ' + service);
}
},
error : function(jqXHR, textStatus, errorThrown) {
endWork();
error('Ajax Error', 'Error invoking ' + service + '('
+ parms + ')');
}
});
}
getJSON
แทนที่จะเป็น$.getJSON
- person ayyp   schedule 19.06.2012getJson
คืออะไร? นั่นเป็นเสื้อคลุมสำหรับ$.getJSON
หรือไม่?$.getJSON
รับพารามิเตอร์เพียง 3 ตัวเท่านั้น และยังแยกวิเคราะห์ JSON ให้คุณอีกด้วย (ไม่จำเป็นต้องใช้$.parseJSON
). - person Rocket Hazmat   schedule 19.06.2012if (json.successful) {
จากนั้นเตะข้อผิดพลาด จากนั้นรันโค้ด Java ของฉัน แต่ไม่ส่งผลลัพธ์กลับไปยังฝั่ง jQuery - person PseudoPsyche   schedule 19.06.2012"Ajax Error: error"
ฉันแก้ไขมันแล้วและมันจะเป็นวิธีการที่แตกต่างไปจากเดิมอย่างสิ้นเชิง ดังนั้นฉันคิดว่า getJson อาจเป็นสิ่งที่คนอื่นเขียนขึ้น ฉันโพสต์ไปที่ OP - person PseudoPsyche   schedule 19.06.2012{"error":{"message":"","title":"Error Generating Search Query"},"data":[Ljava.lang.String;@1e40c9f,"successful":"successful"}
- person PseudoPsyche   schedule 19.06.2012