ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

ajax跨域

2020-02-21 10:04:44  阅读:208  来源: 互联网

标签:跨域 不同 ajax wxample jsonp com


ajax跨域简单来说,就是网站A去调用网站B的数据 但是ajax跨域存在一个问题---浏览器的同源策略,该策略会阻止ajax跨域访问 同源策略(Same origin policy)是一种约定,他是浏览器的一种安全功能 同源:同域名, 同协议, 同端口;不同源则为跨域 例如: http://www.wxample.com
https://api.wxample.com 不同源 域名不同
http://www.wxample.com 不同源 协议不同
http://www.wxample.com:8080/detail.html 不同源 端口不同
http://api.wxample.com:8080/detail.html 不同源 域名,端口不同
https://api.wxample.com/detail.html 不同源 协议,域名不同
https://www.wxample.com:8080/detail.html 不同源 端口,协议不同
http://www.wxample.com/index.html 同源 只有目录不同
              只要看到 ’Access-Control-Allow-Origin‘ 就说明,ajax请求被同源策略限制了。   解决跨域问题有三种方式: ①服务器代理 ②cors ③jsonp   jsonp跨域 jsonp(JSON with Padding): 是一种解决ajax跨域问题的方案 核心思想: 浏览器虽然有同源策略,但是src和href两个属性却可以跨域访问,可以利用这一'漏洞'发送ajax请求   $.ajax方法跨域----jsonp $.post、$.get、$.ajax都能发送跨域请求,但是 $.get、$.post是要依靠cors方式的, 只有$.ajax能使用jsonp方式   核心:
必须设置请求类型为get ---  type: ‘get’
必须设置dataType为jsonp --- dataType: ‘jsonp’
必须额外设置一个jsonp参数,该参数值可以是任何英文字符串,常用callback。==该函数的作用是在前端自动创建一个以该字符串为名称的函数名==
示例:
$.ajax({
    url: '请求地址',
    type: 'get',   
    dataType: 'jsonp',   
    jsonp: 'callback',  //解决前后端函数名统一的问题   
    success: function(msg){
        alert(msg);
        alert(msg.name);
    }
})

 

    https://blog.csdn.net/itcats_cn/article/details/82318092

标签:跨域,不同,ajax,wxample,jsonp,com
来源: https://www.cnblogs.com/maxiag/p/12340306.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有