AJAX跨域

客户端JS

var xhrurl = 'http://localhost:8001/ajax/index.php';
$.ajax({
    type: "get",
    async: false,
    url: xhrurl,
    cache: false,
    dataType: "jsonp",
    jsonp: "callbackparam",
    jsonpCallback: "success_jsonpCallback",
    success: function(json) {
        alert(json[0].name);
    },
    error: function(e) {
        alert("error");
    }
});

服务器

<?php
$str = $_GET['callbackparam'];
$data = [
    'status' => 1,
    'msg' => 'ok'
];
echo $str . '(' . json_encode($data) . ')';

PS:客户端中的jsonp参数值是作为jsonpCallback参数值的键值,通过url来传递jsonCallback参数值到服务器,例如:
http://localhost:8001/ajax/index.php?callbackparam=success_jsonpCallback
,服务器必须接收到此jsonCallback值后,将需要返回的json用与此值拼接,后返回给客户端,不然客户端会发出警告:
Resource interpreted as Script but transferred with MIME type text/plain:
却看不到success定义的函数执行。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • AJAX 跨域请求常用两种处理方法 -- 第一、 使用 跨域资源共享(CORS) CORS(Cross-Origi...
    wwwxi阅读 3,641评论 0 1
  • 什么是跨域(Cross-site)? 想了解跨域,必须先了解一下“同源策略(same origin policy)...
    骊骅阅读 4,057评论 0 5
  • 在解决Ajax跨域问题之前,我们先一起来看看什么是浏览器的同源策略 一.浏览器同源政策 含义1995年,同源政策由...
    卓三阳阅读 5,345评论 0 11
  • 跨域:跨域名 一个域名下的文件去请求了和他不一样的域名下的资源文件,就会产生跨域请求 JSONP : JSON w...
    fa54021d36e2阅读 3,093评论 0 1
  • 饮酒(其一)(平水韵) 文/清风 此生碌碌尽蹉跎,早岁年年唱醉歌。 饮酒常嫌千盏少,归家更是怨言多。 寄身窃喜亲情...
    清风2阅读 2,790评论 0 1