0

別のドメインから動的にデータを動的に取得する必要があり、ajax と jquery を使用したいと考えています。次のことを行いました。

<script type="text/javascript">
    $(document).ready(function(){
                $('#getdata').click(function(){
            var sitename = $('#sitename').val();
            var listname = $('#listname').val();
            getdata(sitename, listname);
        })
    });
   function getdata(sitename, listname){
$.ajax({
            url : 'http://192.168.10.34:8576/home/GetJsonData?site='+sitename+'&listname='+listname+'&viewname=',
            datatype : 'JSON',
            type : 'GET',
            crossDomain: true,
            contentType: "application/json; charset=utf-8",
            success : function(data){

                console.log(data)
            },
            error : function(){
                alert('error');
            }
        })
}
</script>

しかし、それはエラーを返すだけです。なぜ?私は何か悪いことをしましたか?どんな助け/提案も大歓迎です。ありがとう。

4

2 に答える 2

0

JSONP ハックを使用する代わりに、アプリケーションで Cross-Origin Resource Sharing を許可することができます。

これを処理するのは非常に簡単ですが、小規模から中規模のセキュリティ問題が大規模に発生することを理解してください。そのため、適切に対処するようにしてください。

Access-Control-Allow-Originサーバー アプリケーションの応答ヘッダーを に設定するだけです*。CORS リクエストはOPTIONSプリフライト リクエストも発行するため、それらも処理するかどうかを選択できます。

于 2013-07-29T05:29:59.100 に答える
0

JavaScript が生成されたドメイン以外のドメインからデータをリクエストすることはできません。このような場合は、JSONP(JSON with Padding) を使用する必要があります。jQuery ajax 関数で dataType を JSONP に変更します。このような...

datatype : 'JSONP'

また、クロス ドメイン ( http://192.168.10.34:8576/home/GetJsonData) は jsonp をサポートする必要があります。そうしないと、リクエストは失敗します。

于 2013-07-29T05:22:36.407 に答える