2011-01-27 22 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要求であるが、これが発生した理由を私は知りません。私はこの要求を何度か繰り返しましたが、このページではこのエラーが常に発生し、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データクロス原点にしたい場合は、非常にいくつかのオプションがあります。

  • サーバーの制御にいるユーザーは、Firefox、クロム、または少数の最近のバージョンに固執することができれば他のものでは、新しいCORS標準を使用することができます。これはIE8以前のIEのバージョンではまったく動作しません。IE8では、Microsoftが別のオブジェクト(XMLHttpRequestの代わりにXDomainRequest)を使用することにしたため、jQueryのajaxのものとはうまく動作しません。
  • そうでない場合、あなたは(SOPに従う)に要求を送信、サーバー側のプロキシを必要とし、サーバーのリソースを持っています実際にschoolprove.nl編集:ティム・クーパーのgiven you a very basic example PHPでその)に投稿します。

    を...しかし、私の推測では、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