2012-05-10 18 views
1

私のWebアプリケーション(ExtJsで書かれています)をホストするローカルに動作するApacheサーバーをセットアップしました。私はまた、seconローカルサーバphantom.jsで作られた、ポート8080をリッスンします:ローカルjsスクリプトからローカルPhantom.jsサーバーへのAjax呼び出し

var server, service; 

server = require('webserver').create(); 

service = server.listen(8080, function (request, response) { 
    response.statusCode = 200; 
    response.write('<html><body>Hello!</body></html>'); 
    response.close(); 
}); 

を今私はファントムサーバに自分のアプリケーションからAjaxリクエストをしたいと思います:

Ext.Ajax.request({ 
    url: 'http://localhost:8080', 
    method: 'GET', 
    success: function(response){ 
     console.log('RESPONSE: ', response); 
    }, 
    filure: function(response){ 
     console.log('failure: ', response); 
    } 
}); 

しかし、このスクリプトを実行すると、コンソールには

"NetworkError: 400 Bad Request - http://localhost:8080/?_dc=1336648497292"が表示されます。この操作は同じ発信元ポリシーに違反していますか?それとも別のことですか? localhost:8080には適切な応答が表示されるので、サーバーは正常に動作しています。

+0

異なるポートは、起点の観点からは異なるドメインになります。 –

+0

*この操作は同じ発信元ポリシーに違反していますか?*はい*それとも何か他のものですか?サーバーが400 Bad Requestエラーを報告しています。 – Quentin

+0

OKドメイン間の問題から 'Bad Request'エラーが発生する可能性がありますか? –

答えて

2

あなたのHTMLもlocalhost:8080にありますか?そうでない場合(異なるポート=>別のホスト)、クロスドメインのajax問題が発生します。

+0

そんなことを考えています:/いいえ、htmlはポート80にあります。 –

+0

これが役立つ場合は試してみてください:http://stackoverflow.com/questions/3076414/ways-to-circumvent-the-same-origin-policy – Gavriel

0

File ProtocalsではAjaxが動作しません!これはHTTPまたはHTTPでのみ機能します。私はudemyに関するコースを見つけました。メンターは、ajaxはファイルd://(path)protocalsで動作しないと言います。そこで、彼はファイルをWebサーバーに移してから、彼はajaxに関する彼の話題を説明しました。

願っています!

関連する問題