คำขอและการตอบกลับ HTTP

ฉันต้องส่งคำขอไปยัง pipl.com ( http://apis.pipl.com//search/v2/json/?email=maryuca_alias%40yahoo.com&person_mode=all&exact_name=0&no_sponsored=0&key=myKey) อื่นๆ เพื่อรับบางส่วน ข้อมูลเกี่ยวกับบุคคล การตอบสนองของคำขอนี้เป็นวัตถุ json ฉันไม่สามารถทำเช่นนี้ได้ด้วยการเรียก ajax/jquery/jsonp เนื่องจากเซิร์ฟเวอร์ของพวกเขาไม่รองรับการโทรประเภทนี้ มีวิธีการประมวลผลการตอบสนองทางฝั่งเซิร์ฟเวอร์ (ฉันใช้ Struts 1) หรือฝั่งไคลเอ็นต์หรือไม่

หากคุณมีวิธีแก้ปัญหา โปรดตอบคำถามนี้

<html>
<head>
</head>
<body>
<script type="text/javascript">
function getJSONP(url, success) {
var ud = '_' + +new Date,
script = document.createElement('script'),
head = document.getElementsByTagName('head')[0] 
|| document.documentElement;
window[ud] = function(data) {
head.removeChild(script);
alert(data);
success && success(data);
};
script.src = url.replace('callback=?', 'callback=' + ud);
head.appendChild(script);
}
getJSONP('http://apis.pipl.com//search/v2/json/?email=maryuca_alias
%40yahoo.com&person_mode=all&exact_name=0&no_sponsored=0
&key=key&callback=?', function(data){
console.log(data);
});     
</script>
</body>
</html>

person Martinas Maria    schedule 22.05.2012    source แหล่งที่มา


คำตอบ (2)


ใช้บางอย่างเช่น HttpClient เพื่อสร้างคำขอจาก Java ซึ่งอาจอยู่ในบริการที่เรียกโดย คลาสแอ็คชั่น การตอบกลับนั้นสามารถประมวลผลได้ด้วย Java หรือ JavaScript ขึ้นอยู่กับความต้องการของคุณ

person Dave Newton    schedule 22.05.2012
comment
จะลองดูครับ น่าจะเหมาะที่สุด ขอบคุณครับ - person Martinas Maria; 22.05.2012

โอเค ดูเหมือนว่าคุณจะส่งคำขอข้ามไซต์ที่ถูกต้อง แต่ส่วนหัวของคุณแตกต่างไปจากที่คาดไว้ หรือข้อมูลไม่ได้จัดรูปแบบ JSON

หากส่วนหัวของการตอบกลับไม่เหมาะสม คุณสามารถแยกวิเคราะห์ข้อมูลทางฝั่งไคลเอ็นต์ได้ตลอดเวลา วิธีที่ดีที่สุดในการระบุปัญหาคือการวางส่วนหัวของคำขอ การตอบกลับ และโค้ด

person specone    schedule 22.05.2012
comment
ไม่ใช่คำขอข้ามไซต์ที่ถูกต้อง ด้วยการเรียก ajax แบบคลาสสิก ฉันได้รับต้นกำเนิดข้อผิดพลาดที่ไม่ได้รับอนุญาต ดังนั้นฉันจึงลองด้วยการโทร jsonp แต่ pipl.com ไม่รองรับรูปแบบนี้ - person Martinas Maria; 22.05.2012
comment
โหวต 0 คะแนน ใช่แล้ว ฉันได้อ่านเอกสารของพวกเขาแล้ว - แย่มาก สิ่งที่ฉันแนะนำได้คือลองใช้ jsonp/ajax จาก jquery หรือสิ่งที่ยุ่งยากกว่าเล็กน้อย แต่จะได้ผล 100% - โทรด้วยสคริปต์ ajax บนเซิร์ฟเวอร์ของเราที่รับเนื้อหาหน้าด้วย cURL หรือไลบรารีคำขอ http อื่น ๆ - person specone; 23.05.2012