는 코드 몇 가지 문제가 있습니다. 인수 이 이벤트입니다 (여기 : 클릭). 당신은 비활성화 클릭의 '정상' 행동이 나중에 필요하게 될 것입니다 : 당신이 val()
필요하지 않습니다
$("a.bind-jquery-event-here-class").bind("click", function(event) {
event.preventDefault();
2) href를 읽기 위해. (val()
입력 필드에서 물건을 판독하기위한 것이다.)
var url = $(this).attr("href");
3)의 A AJAX 비동기 약자. 코드의 의미는 다음과 같습니다. 로드는 서버에서 데이터로드를 시작하지만 은 완료 될 때까지을 기다리지 않습니다. 콜백 함수을 정의해야만 최종적으로 데이터가 처리됩니다.
4)로드는 AJAX 호출을 수행하고 결과를 DOM에 삽입하는 것입니다. 당신은 경고를 위해 그것을 사용할 수 없습니다. 경고가 필요하지 않은 경우 대신 $ .ajax를 사용하십시오.
5) AJAX를 통해 임의의 URL을로드 할 수 없으면 AJAX 통화는 자신의 서버로 돌아갈 수 있습니다. 다른 서버에서 물건을로드해야 할 경우 서버 측 스크립트를 프록시로 사용해야합니다. 프록시를 호출하는 방법은 다음과 같습니다.
$.ajax({
type: "POST",
url: "proxy.php",
data: "url="+url,
success: function(data){
alert("finally got data " + data);
}
});
여기 프록시의 예는 php입니다.
<?php
error_reporting (E_ALL^E_NOTICE);
if (isSet($_POST['url'])) {
if(true == ($str=file_get_contents($_POST['url']))) {
echo $str;
exit;
}
}
echo "could not read page";
?>
는 PHP에 대한 경고의 말씀
:
file_get_contents
은 서버에서 비활성화 될 수 있습니다.당신은 A HREF 링크와 함께 전체 메뉴가있는 경우
$(document).ready(function(){
$("a.bind-jquery-event-here-class").bind("click", function(event) {
event.preventDefault();
var url = $(this).attr("href");
alert("loading via proxy: " + url);
$.ajax({
type: "POST",
url: "proxy.php",
data: "url="+url,
success: function(data){
alert("finally got data " + data);
}
});
});
});
도움 '을.' attr의 왼쪽에. – rahul