0

JSON 応答の文字列を返す Web サービスがあります。$.ajax関数を使用してWebページでその応答にアクセスしようとすると、常にエラーが生成され、応答なしで終了します..誰かが私を助けて、以下のコードで何が間違っているか教えてください..

function getdata() {

        alert("start");
       $.ajax({
        type: "POST",
        data: "{'value':'10'}",
        url: "http://localhost:8080/RESTExample/parameter_url",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (data) {
                    alert("received "+data);
            },
        error: function (data) {
                    alert("error is "+data);
            }
});
        alert("end");
    }

これで、直接アクセスで JSON 応答を提供する URL を取得しました **

" http://coenraets.org/apps/directory/services/getemployees.php "

**

JSPページでこのデータにアクセスしようとしています

    <script language="javascript">

  $(document).ready(function()
   {
   $('#login').click(function(event){

    event.preventDefault();
    localStorage['serviceURL'] = "http://coenraets.org/apps/directory/services/getemployees.php";
    var serviceURL = localStorage['serviceURL'];
      alert("start");

        $.ajax({
    dataType: "jsonp",
    url: serviceURL,
    success :function SucceedFunc(data) {
            alert("success");
            console.log(data);
        },
    error : function(data, textStatus, errorThrown) {
    alert("error");
    console.log(data);
        }
}).done(function ( data ) {
  console.log(data);
});

    });
   });

</script>

<div class="main_div">



<div class="loginform">
<form>   
    <div class="login_btn">
    <input type="submit" class="login" value="Login" id="login"/>
    </div>
</form>
</div>
</div>

エラーが発生します....このデータにアクセスするのを手伝ってくれる人はいますか.... PLS ...

4

3 に答える 3

2
$.ajax({
    dataType: "jsonp",
    url: serviceURL
}).done(function ( data ) {
  console.log(data);
});

try this

于 2013-04-04T13:31:47.103 に答える
1

簡単に言えば、ブラウザーはドメイン (something.com など) の JavaScript が別のドメイン (something-different.com など) のデータにアクセスすることを許可していません。これはいわゆる「Same Origin Policy」です。

これを回避する特定の方法があります。最も簡単な方法は、前述のように jsonp を使用することです。Nisanth Sojan から引用します。

$.ajax({
    dataType: "jsonp",
    url: serviceURL
}).done(function ( data ) {
    console.log(data);
});

ただし、jsonp には他にもいくつかの制限があります。投稿リクエストを行うことはできません。これを行う一般的な方法は、リクエストが送信されるサーバーで CORS をサポートすることです (リスクがあるため)。

ソースと詳細情報: http://webadvent.org/2011/cross-origin-ajax-with-cors-by-david-walsh

于 2013-04-04T14:07:47.693 に答える