ajax 크로스 도 메 인 요청 문제 해결 방안
2770 단어 AJAX 크로스 필드
API 원문 (따 기): 가 져 온 데이터 파일 이 원 격 서버 에 저장 되 어 있 으 면 jsonp 형식 을 사용 해 야 합 니 다.이 형식 을 사용 하면 검색 문자열 인자 callback =?,이 매개 변 수 는 요청 한 URL 뒤에 추 가 됩 니 다.서버 쪽 에 서 는 JSON 데이터 앞 에 리 셋 함수 이름 을 추가 하여 효과 적 인 JSONP 요청 을 완성 해 야 합 니 다.원 격 서버 에서 되 돌아 오 는 데 이 터 를 처리 해 야 한 다 는 뜻 입 니 다. 클 라 이언 트 가 제출 한 callback 의 매개 변수 에 따라 callback (json) 의 데 이 터 를 되 돌려 주 고 클 라 이언 트 는 script 방식 으로 데 이 터 를 처리 하여 json 데 이 터 를 처리 합 니 다.
클 라 이언 트 의 작은 예제:
<script type="text/javascript">
$.ajax({
type : "get",
async:false,
url : "http://chinese.tradingfloor.com/index.php/cycling/",
dataType : "jsonp",
jsonp: "callback_param",// callback function
jsonpCallback:"callback_handler",//callback function
success : function(data){
var str = '';
$.each(data, function(key, val) {
var race_date= val['race_date'] == null?'':val['race_date'];
var road = val['road'] == null?' ':val['road'];
var dis = val['distination']== null?'':val['distination']+'km';
var name = val['champion_name'] == null ? '':val['champion_name'];
if(val!=null){
str += "<tr><td>"+race_date+
"</td><td>"+road+
"</td><td>"+dis+
"</td><td>"+name+
"</td></tr>";
}
});
races.append(str);
},
error:function(readyState,statusText,throwable){
alert(readyState);
alert(statusText);
alert(throwable);
}
});
</script>