2011-01-27 4 views
0

Jquery AJAX에 이상한 문제가 있습니다. 즉, 다음 메시지가 표시됩니다.Jquery AJAX 문제

액세스가 거부되었습니다. JQuery와-1.4.4.min.js

내가 실행 코드는 다음과 같습니다

$(document).ready(function(){ 

    leuk(<?php echo $_POST['decrease_id']; ?>,<?php echo $_POST['user_id'] ?>); 

    var int=self.setInterval("leuk(<?php echo $_POST['decrease_id']; ?>,<?php echo $_POST['user_id'] ?>);",5000); 

    }); 


    function leuk(decrease_id,user_id) 
    { 

    $.ajax({ 
    type: "POST", 
    url: 'http://schoolprove.nl/nieuw/index.php/leerlingen/checkvoortgang/', 
    data: 'decrease_id='+decrease_id+'&user_id='+user_id, 
    success: function(msg){ 
     $('#output').html(msg); 
     document.getElementById('opnieuw').style.display = 'none'; 
    } 
    }); 

    } 

그것은 단순한 AJAX 요청하지만이 발생하는 이유는 모른다. 나는이 reqeust 여러 번했지만이이 페이지 에서이 오류가 항상 발생하고 AJAX 요청 작동하지 않습니다.

아무도이 문제를 해결하는 방법을 알고 있지 않습니까?

대단히 감사합니다 !!!!

+0

이 코드는 HTTP'에서 실행되는 : // schoolprove.nl' 또는 다른 도메인? –

답변

1

도메인 외부에서 AJAX 요청을하고 있습니다. 이것은 브라우저 제한 사항이며 모든 브라우저에 적용됩니다.

+0

그것은 작동합니다! 나는 URL http://schoolprove.nl/nieuw/index.php/leerlingen/에서 이것을 떼어 낸다. 당신의 도움을 주셔서 감사합니다! – JelleP

0

도큐멘트 페이지가 http://schoolprove.nl에서로드되지 않는 경우 Same Origin Policy 제한 사항에 부딪 히고 있습니다. 당신이 POST 데이터 출처 간 원한다면

당신은 매우 몇 가지 옵션이 :

  • 당신은 서버를 제어하고있어, 사용자가 파이어 폭스, 크롬, 또는 약간의 최신 버전에 충실 할 수있는 경우 다른 사람은 새로운 CORS 표준을 사용할 수 있습니다. 그것은 IE8 이전의 IE 버전에서 전혀 작동하지 않으며 IE8에서는 Microsoft가 다른 객체 (XMLHttpRequest 대신 XDomainRequest)를 사용하기로 결정했기 때문에 jQuery의 아약스와 작동하지 않습니다.
  • 그렇지 않으면, 당신은 당신이합니다 (SOP 순종)에 요청을 보낸 다음 schoolprove.nl (: PHP에서 그 팀 쿠퍼의 given you a very basic example편집)에 서버 자원이 실제로 게시가 서버 측 프록시가 필요합니다.

    을 ...하지만 내 생각은 GET가 적합하지 않은 것입니다 :

당신은을 포함하여 GET에 더 많은 옵션이있을 것이다 당신이하는 일은 idempotent이 아니기 때문입니다. (그렇다면 내가 할 수있는 것입니다.)

+0

그것은 작동합니다! 나는 URL http://schoolprove.nl/nieuw/index.php/leerlingen/에서 이것을 떼어 낸다. 당신의 도움을 주셔서 감사합니다! – JelleP

+0

@user : 귀하의 페이지가'http : // schooprove.nl' (** ** ** http : // www.schoolprove.nl', ** not **'https : // schoolprove.nl'), 당신은 완전한 길을 가졌는지 여부와 관계없이 잘 돌아갔어야합니다. 그러나 상대 경로는 가능한 경우 항상 선호됩니다. 대답은 다른 사람들이 준 답이 아니기 때문에 자신의 질문에 대답 할 수 있습니다. StackOverflow를 사용하면 며칠 후 답변을 수락 할 수 있습니다 ("답변 됨"으로 표시). –

1

AJAX 요청은 스크립트가 현재 사용중인 도메인과 다른 도메인으로 만들 수 없습니다. 필요할 경우 서버에서 크로스 사이트 요청을 발행하는 스크립트를 만들 수 있습니다.

서버에있을 것입니다 스크립트의 예 :

$curl_res = curl_init("http://schoolprove.nl/nieuw/index.php/leerlingen/checkvoortgang/"); 

curl_setopt($curl_res, CURLOPT_POST, true); 
curl_setopt($curl_res, CURLOPT_POSTFIELDS, "decrease_id=" . $_POST[ 'decrease_id'] . "&user_id=" . $_POST['user_id']); 

curl_exec($curl_res); 
+1

그것은 작동합니다! 나는 URL http://schoolprove.nl/nieuw/index.php/leerlingen/에서 이것을 떼어 낸다. 당신의 도움을 주셔서 감사합니다! – JelleP