JSONP跨域 ajax请求

 

原理:

由于浏览器的同源策略不能使用XMLHTTPREQUEST对除本地外的服务器发送请求。

所以使用script代码块的src属性发送请求,接收到的JSONP数据以函数名的方式返回。

需要在本地创建服务器返回的函数接收服务器返回的数据。

 


 

JS代码:

function jsonpRequest() {
var create_src = document.createElement('srcipt'); #创建script标签
create_src.src = 'http://127.0.0.1:8000/index.html?callback=func';    #给script标签加入src请求地址
document.head.appendChild(create_src);      #把script标签添加到head标签内
document.head.removeChild(create_src);      #把script标签在head标签内删除

}

function f(arg) {
console.log(arg)
}



jquery代码:

$.ajax({
url:'http//xxxxx',
type:'GET' 或 'POST',
dataType:JSONP,
jsonp:'callback',
jsonpCallback:'func'
})

function func(arg){
  console.log(arg);
}


django代码:

def jsonp_func(request):
  name = request.GET.get('callback')
  return HttpResponse('%s,***' % name)
posted @ 2018-06-30 17:45  篓子  阅读(140)  评论(0编辑  收藏  举报