你能给我举一个跨领域的例子吗

can you give me an example of cross domain

本文关键字:一个      更新时间:2023-09-26

可能重复:
规避同源政策的方法

例如,我有一个2域"http://domain1.com/info.php"另一个是"http://domain2.com/script.html">

现在是第一个域"http://domain1.com/info.php"正在发布类似的json编码数据

{
    "str_info": [
        {
            "str_name": "Mark",
            "str_age": "22"
        },
        {
            "str_name": "Aliza",
            "str_age": "52"
        }
    ]
}

第二个领域是什么?"http://domain2.com/script.html"做的是检索和操作第一个域提供的数据

我不知道如何连接和检索来自第一个域的数据http://domain1.com/info.php"到作为脚本的第二个域。所以你能告诉我如何使用jsonp,jquery,ajax(如果可能的话(

来自jQuery.org

由于浏览器的安全限制,大多数"Ajax"请求都受到限制同源政策;请求无法成功检索来自不同域、子域或协议的数据。

脚本和JSONP请求不受同源策略限制。

如果跨域工作,可以使用名为JSONP的方法ajax请求添加了一个参数?callback=callbackname,您的服务器使用进行应答

callbackname
(
    {
        "str_info": [
            {
                "str_name": "Mark",
                "str_age": "22"
            },
            {
                "str_name": "Aliza",
                "str_age": "52"
            }
        ]
    }
);

然后在您的客户端上执行该函数。你可以使用jQuery来完成这件事,非常简单的

$.getJSON("http://domain1.com/info.php?callback=?", function(data) {
  alert("success");
});

在PHP中,你会像这样包装你的结果(简单的例子(

echo $_GET['callback'], '(' , json_encode( $data ), ')';

使用回调函数(如(发送数据

callback({
  "str_info":[{"str_name":"Mark","str_age":"22"},{"str_name":"Aliza","str_age":"52"}]
});

然后在域上接收数据使用功能

<script>
    function callback(i){
    //maniputlate i (json data) here
    }
</script>
<script type="text/javascript" src="http://domain1.com/info.php"/>