1

ページが読み込まれたときにjsonRPCajaxリクエストを送信しようとしています。これが私のjavascriptコードです:

$(document).ready(function() {
        var data="orderID=<?=$_POST['orderID'];?>&&lang=eng";
        $.ajax({
            url: "ajax/get_json_variables.php", 
            type: "POST",       
            data: data,     
            cache: false,
            success: function (html) {
                var splited=html.split("|");
                if(splited[0]=="0")
                {
                    alert(splited[1]);
                }
                else
                {
                    $.ajax({
                        url: "https://91.199.226.106/ssljson.php",  
                        type: "POST",       
                        data: splited[1],       
                        cache: false,
                        dataType:"json",
                        success: function (html) {
                            alert(html);
                        }
                    });
                }
            }   
        });
    });

最初のajaxリクエストで、2番目のリクエストのjson文字列を取得します。グーグルクロームは私にこのエラーを与えます:

XMLHttpRequest cannot load https://91.199.226.106/ssljson.php. Origin http://www.nver.am is not allowed by Access-Control-Allow-Origin.

何が問題なのかわかりませんか?手伝ってくれてありがとう。

4

2 に答える 2

2

この問題はSame Domain Policyが原因であり、回避するのが難しい場合があります。jQuery を使用していない場合、これを回避して目的の機能を実現するいくつかの方法は、iframe とEasyXDMなどのクロスドメイン メッセージング ヘルパーを使用するか、動的に挿入されたタグを使用して JSON を特別な形式で取得することです。JSONPとして知られています。

ありがたいことに、あなたは jQuery を使用しているので、http://api.jquery.com/jQuery.getJSON/と JSONP を使用して同一生成元ポリシーを回避できます。

于 2012-03-24T08:09:32.017 に答える
0

これは、「Same origin policy」に関連する問題である可能性があると思います。あなたがやっているように、異なるドメインまたは異なるプロトコルで異なる ajax 呼び出しを実行することはできません。

ここでいくつかの参照: http://en.wikipedia.org/wiki/Same_origin_policy http://stackoverflow.com/questions/1105934/ajax-http-https-problem http://en.wikipedia.org/wiki/Cross- Origin_Resource_Sharing

于 2012-03-24T08:08:52.670 に答える