0

json を返す単純な安らかなサービスがあります。必要なデータを取得するために ajax 呼び出しを行いたいです。firefoxのRestClientで試してみると問題ありません。サービスはjsonを返し、残りのクライアントでjsonを見ることができます。しかし、ajax 呼び出しを使用すると失敗します。コンソールには200 OKが表示されますが、エラー関数は呼び出し後に実行されます。私はこれを検索しました。一般的に、クロスドメインの問題であると言われていますが、これを解決できません。

これはエラー関数の失敗メッセージです{"readyState":0,"responseText":"","status":0,"statusText":"error"}

AJAX 呼び出し

$.ajax({
        type:"GET",
        url: "http://localhost:8080/myController/getInfo",
        dataType:"json",
        success: function(data){
            alert(JSON.stringify(data));
        },
        error: function(msg){
            alert("ERROR! \n" + JSON.stringify(msg));
        }
    });

Firefox のコンソール メッセージ

Content-Type    application/json
Date    Mon, 18 Feb 2013 11:51:41 GMT
Server  Apache-Coyote/1.1
Transfer-Encoding   chunked

Accept  application/json, text/javascript, */*; q=0.01
Accept-Encoding gzip, deflate
Accept-Language tr-TR,tr;q=0.8,en-US;q=0.5,en;q=0.3
Host    localhost:8080
Origin  null
User-Agent  Mozilla/5.0 (Windows NT 5.1; rv:18.0) Gecko/20100101 Firefox/18.0

呼び出しから返されたデータ:

{ "date": "1 hour ago", "photoUrl": "img/movie_detail/celal.jpg", "rating": "three", "title": "Celal ile Ceren" } 
4

2 に答える 2

0

この目的で CORS を使用できます。

コード例:

jQuery.support.cors = true; 

function CrosDom_ajax(url) {
        if (window.XDomainRequest
        && $.browser.msie
        && $.browser.version < 10) {
        xdr = new XDomainRequest();
        if (xdr) {
            xdr.onload = function () {
               alert(xdr.responseText);

            };
            xdr.open("get", url);
            xdr.send();
        }
        }
        else {
            $.ajax({
                url: url,
                success: function (response) {


                },
                error: function (data) {
                }
            });
         }
    }

また、クロスドメインアクセスを許可するには、サーバー側で次のコードを記述する必要があります

Response.AppendHeader("Access-Control-Allow-Origin", "*");
于 2013-02-19T10:09:53.000 に答える