私はAJAXを呼び出すサイトを持っています。それは私が作ったオフィス(つまり、多くの人のコンピュータ、異なるシステムやブラウザで、私のものだけではない)で働いていて、1台の外部コンピュータ(オフィスから約10分住んでいる友人) 。しかし、AJAXは他のすべての外部のコンピュータで失敗します。私が家で試してみたり、私の別の友人が彼の家で試してみると、うまくいかない(私たちはオフィスから遠く離れている)。これは、jQueryを使用した非常に単純なAJAX呼び出しです。AJAXは地理的な場所に基づいて動作しますか?
$(destination).load(url);
私はFirebugのコンソールでそれをチェックし、AJAX呼び出しがリストされている。この
を発見し、それが動作するとき、それが動作しない場合、それを除いてそれはdoesnのとき
GET (url) 200 OK
としてそれは赤で、OKと152msの間に「X」のアイコンが表示されています。
PARAMS]タブ - それが動作するかどうか、同じであるかない
ヘッダー]タブ - それが動作するとき、「リクエストヘッダ」セクションを示しています
X-Requested-With XMLHttpRequest
Cookie PHPSESSID=*******
しかし、それは動作しない場合、これらの行は存在しませんが、代わりに 'Origin'の行があります(これにはメインサイトURLがあります)。
レスポンス/ HTMLタブ - 動作しないときは空です。
私が言ったように、私はブラウザ、コンピュータ、Mac、Pcなどをテストしました。オフィスではすべて動作しますが、遠くにはありません。どんな助けでも大歓迎です。
UPDATE
私は、コードを分離するためにテストページを作成しました。テストページが短時間で動作し、その後作業が中断されました(私を驚かせる)。だから、今私のコードにはエラーがあると思うが、ブラウザが動作したときにエラーが何とか見落とされる(テストはしないが、オリジナルはオフィスで動作する)。
テストページには「Worked!」が必要です。 'テスト'リンクがクリックされるとポップアップ表示されます。コードは次のとおりです。
<?php
$call = $_GET['call'];
echo $call;
if($call == 'yes') //check for call
{
echo 'Worked!';
exit();
}
?>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.js" type="text/javascript"></script>
<script language="javascript" type="text/javascript">
function callAjax(call){
var dest = "#result";
var url = "http://www.test/page/url.php";
var query = "?call="+call; //turn call into a query string
url = url+query; //Add querystring to url
$(dest).load(url); //make the call
}
</script>
<!DOCTYPE html><html><head><title>Test</title></head>
<body>
<a href="javascript:callAjax('yes')">test</a>
<div id="result"></div>
</body>
</html>
ロードしようとしているURLは何ですか? (秘密でない場合) – florian
@florian私がロードしているページは、家からでも正常に動作します(AJAX呼び出しの代わりに直接移動すると動作します)。これは、いくつかのデータベース情報の簡単なリストです。私は問題がリクエストヘッダーにXMLHttpRequestが存在しないことと関係していると確信していますが、なぜそれが当てはまるのかわかりません。 – lcHatter
'url'は' http:// www.example.com/page'、 '/ page'、または' page'のように見えますか? – icktoofay