加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ajax跨域——Jsonp

发布时间:2020-12-16 00:42:25 所属栏目:百科 来源:网络整理
导读:今天在进行学习的当中,想利用jquery当中的$.ajax访问其他服务器来获取数据.这时在Console中提示 XMLHttpRequest cannot load http://0.0.0.0:3001/xxxx. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://0.0

今天在进行学习的当中,想利用jquery当中的$.ajax访问其他服务器来获取数据.这时在Console中提示

XMLHttpRequest cannot load http://0.0.0.0:3001/xxxx. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://0.0.0.0:3000' is therefore not allowed access. 


从这里我们可以知道是 我想用3000这个端口去访问3001 但是被拒绝了..

原本是采用的 通过ajax访问本地服务器,在通过服务器端的请求实现跨域请求的..

但是后来发现,使用jsonp可以直接实现ajax跨域的get方法


以下以ruby在rails上为例:
3000端口主要代码:(浏览器)
:javascript
    $(document).ready(function(){
      user_login();
    })


    function user_login(){
       $.ajax({
           type:'get',url:'http://0.0.0.0:3001/show_user/',dataType:"jsonp",success:success_result,error:error_result
     })
    }
    function success_result(username)
    {
      alert(username)
    }
    function error_result(error)
    {
      alert(error)
    }



3001端口主要代码(服务器)

def show_user
    callback=params[:callback]
    render :text =>callback+"('XiaoMing')"
end
这里的params[:callback]是jquery中默认命名的回调函数名,实际url为url?callback=success_result 其实就是success后所对应的方法.. 最终结果为 在3000端口弹出'XiaoMing'提示框 因为是jquery中的技术..所以也可以自行转化为其他语言实验..

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读