2010-11-30 2 views
0

は、だから私のJSファイルが動作するために使用偉大:Mootools Request.JSONは同じマシンを指しているURLにアクセスするのが好きではないのですか?

function checkLoggedIn() { 
    new Request.JSON({ 
    url: 'http://localhost/site/ajax/auth.php', 
    onSuccess: function(data) { 
    // Do some stuff 
    } 
    }).send('action=check'); 
} 

は、それから私は、世界の残りの部分に自分のページを提供することを決めたので、私はthuslyコードを変更:

function checkLoggedIn() { 
    new Request.JSON({ 
    url: '<?=SOME_URL=>ajax/auth.php', 
    onSuccess: function(data) { 
    // Do some stuff 
    } 
}).send('action=check'); 
} 

場合はPHPで、I SOME_URLをWebサーバーを指すように定義しました。私は同じマシン(Webサーバー)でサイトをテストしようとしましたが、うまくいかないときは驚いていました。リクエストはちょうど失敗しましたが、どのエラーメッセージがどのようにチェックされているかわかりません。私のjsコンソールは空です。

何奇妙なのは、私は相対パスでURLを交換した場合、それが正常に動作しています。

私は2番目のコードスニペットで、別のコンピュータ上のWebサーバーにアクセスしてみました、それは素晴らしい作品。サーバーのブラウザ(firefox)上のjsパーサが、リクエストを好きではないと指摘していますか?なぜFQDNよりも "http:// localhost /"が好きですか?

ありがとう!

編集:

function checkLoggedIn() { 
    new Request.JSON({ 
    url: 'http://www.example.com/application/ajax/auth.php', 
    onSuccess: function(data) { 
    // Do some stuff 
    } 
    }).send('action=check'); 
} 

機械自体は、マシン上およびApache会議通話数介しように定義、example.comである:ソースを示すかと思ったものについて。

+0

正確なパブリックURLを与えてから、 'SOME_URL'(表示ソースで確認)の値を与えてください。ほとんどの場合、絶対URLは完全に同等ではありません。 –

+0

これはクロスドメインAJAXの問題である可能性を排除しましたか? http://www.jimbojw.com/wiki/index.php?title=Introduction_to_Cross-Domain_Ajax – stillstanding

+0

こんにちはMatthew - プライバシーの理由から、私は公のURLを掲載するのではなく、同等です。確かに、私はソースコードを見て確認しました - しかし、チップのおかげで! –

答えて

0

「http://www.example.com/application/ajax/auth.php」の代わりに/ajax/auth.phpを使用するとどうなりますか?これは同じドメインにある場合に有効です

+0

それはクロスドメインアヤックスの問題に終わった。 "localhost"と "127.0.0.1"は同じではありません。 –

関連する問題