首页常见问题正文

处理跨域请求

更新时间:2024-03-11 来源:黑马程序员 浏览量:

IT培训班

  $.getJSON()方法支持跨域请求。在网络中,协议、域名、端口号有任何一个不同都属于不同的域,而跨域就是指一个域的页面请求另外一个域的资源。出于安全考虑,浏览器限制了跨域行为,只允许页面访问本域的资源,这种限制称为同源策略。

  如果需要跨域请求,可以通过JSONP(JSON with Padding)、CORS(Cross-Origin Resource Sharing)等方案来实现。$.getJSON()方法采用JSONP方案实现跨域请求,其使用方式非常简单,在请求地址后增加url参数“callback=?”即可。其中,callback表示回调函数,它的值“?”将被$.getJSON()方法替换成一个自动生成的函数名。

  为读者更好地理解跨域请求,下面通过一个案例进行演示。由于JSONP需要服务器端的配合,因此先创建一个jsonp.php用于在服务器端执行,具体代码如下。

  jsonp.php

1 <?php
2 $callback = $_GET['callback'];
3 echo "$callback(123);";

  在上述代码中,第2行通过变量$callback接收来自url参数中的callback回调函数名,第3行对变量进行了字符串拼接,拼接结果为“回调函数名(123);”,表示调用函数并传递参数“123”。“123”是返回给浏览器的数据,此处可以根据实际需求换成其他数据。

分享到:
在线咨询 我要报名
和我们在线交谈!