0

次の URL をアドレス バーに貼り付けると、ユーザー名とパスワードの入力が求められます。認証されると、結果が json 形式で送信されます。 http://metabolomics.pharm.uconn.edu:2480/connect/iimdb

ただし、次のコードは機能しません。アラート「失敗」になります。また、ユーザー名とパスワードをハードコーディングしてみました。誰かが問題を見つけることができますか。前もって感謝します。

    <script type="text/javascript" src="jquery-1.9.1.min.js"></script>
        <script type="text/javascript">
        $(document).ready(function(){   
            var userName = $('#username').val();
            var password = $('#password').val();
            var submitButton = $('#submitButton');
            submitButton.click(function(){
    $.ajax( {
        type: 'Get',
    url : 'http://metabolomics.pharm.uconn.edu:2480/connect/iimdb',
    dataType : 'json',
        username : userName,
        password : password,
    success : function(data) {
        alert("success");
        response(data);
    },
        error : function()
        {
        alert("failed");
        }
});
    });
        }); 
        </script>
4

2 に答える 2

2

クライアント側からは、他のドメイン (:81 のような同じドメインの異なるポートでさえも) とホスト自体にリクエストを行うことはできません。これは同一オリジン ポリシーです。

この認証を実装する場合は、ホスト (アプリが実行されている場所) に AJAX 投稿を送信する必要があり、アプリ自体がこの要求を目的のアドレス (この場合はmetabolomics.

回答を受け取ったら、クライアントの ajax リクエストに任意の方法で返信できます。

本当に JavaScript の形式に固執したい場合は、そのようなリクエストをプロキシするだけの回避策があります。Q: Make cross-domain ajax JSONP request with jQueryおよびQ: Ajax cross domain callを参照してください。

于 2013-02-21T19:25:39.453 に答える
0

「Same origin policy」に問題のない$.getJSON()を使用することもできます。

それは以下と同等です:

$.ajax({
  dataType: "json",
  url: url,
  data: data,
  success: success
});
于 2013-11-13T10:20:46.763 に答える