1

我试图在页面加载时发送一个 json RPC ajax 请求。这是我的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 请求,我得到第二个请求的 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

我认为这可能是与“同源政策”有关的问题。您不能像正在执行的那样对不同的域或使用不同的协议执行不同的 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 回答