分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

ajax跨域例子

发布时间:2023-09-06 02:32责任编辑:郭大石关键词:跨域

例子

https://github.com/ruanyf/react-demos/blob/master/demo12/index.html

此网页代码运行在本地, 是可以访问 github 数据的。 是由于 github 网站开启的 ajax 跨域访问能力。

 1 <!DOCTYPE html> 2 <html> 3 ??<head> 4 ????<meta charset="UTF-8" /> 5 ????<script src="../build/react.development.js"></script> 6 ????<script src="../build/react-dom.development.js"></script> 7 ????<script src="../build/babel.min.js"></script> 8 ????<script src="../build/jquery.min.js"></script> 9 ??</head>10 ??<body>11 ????<div id="example"></div>12 ????<script type="text/babel">13 ??????class RepoList extends React.Component {14 ????????constructor(props) {15 ??????????super(props)16 ??????????this.state = {17 ????????????loading: true,18 ????????????error: null,19 ????????????data: null20 ??????????};21 ????????}22 23 ????????componentDidMount() {24 ??????????this.props.promise.then(25 ????????????value => this.setState({loading: false, data: value}),26 ????????????error => this.setState({loading: false, error: error}));27 ????????}28 29 ????????render() {30 ??????????if (this.state.loading) {31 ????????????return <span>Loading...</span>;32 ??????????}33 ??????????else if (this.state.error !== null) {34 ????????????return <span>Error: {this.state.error.message}</span>;35 ??????????}36 ??????????else {37 ????????????var repos = this.state.data.items;38 ????????????var repoList = repos.map(function (repo, index) {39 ??????????????return (40 ????????????????<li key={index}><a href={repo.html_url}>{repo.name}</a> ({repo.stargazers_count} stars) <br/> {repo.description}</li>41 ??????????????);42 ????????????});43 ????????????return (44 ??????????????<main>45 ????????????????<h1>Most Popular JavaScript Projects in Github</h1>46 ????????????????<ol>{repoList}</ol>47 ??????????????</main>48 ????????????);49 ??????????}50 ????????}51 ??????}52 53 ??????ReactDOM.render(54 ????????<RepoList promise={$.getJSON(‘https://api.github.com/search/repositories?q=javascript&sort=stars‘)} />,55 ????????document.getElementById(‘example‘)56 ??????);57 ????</script>58 ??</body>59 </html>

显示内容:

 ajax跨域访问限制放开

https://www.zhihu.com/question/26376773

跨域资源共享

CORS是一个W3C标准,全称是”跨域资源共享”(Cross-origin resource sharing)。 对于这个方式,阮一峰老师总结的文章特别好,希望深入了解的可以看一下http://www.ruanyifeng.com/blog/2016/04/cors.html。

这里我就简单的说一说大体流程。

  1. 对于客户端,我们还是正常使用xhr对象发送ajax请求。
    唯一需要注意的是,我们需要设置我们的xhr属性withCredentials为true,不然的话,cookie是带不过去的哦,设置: xhr.withCredentials = true;
  2. 对于服务器端,需要在 response header中设置如下两个字段:
    Access-Control-Allow-Origin: http://www.yourhost.com
    Access-Control-Allow-Credentials:true
    这样,我们就可以跨域请求接口了。

抓包分析

对于发起的ajax请求,存在响应头  Access-Control-Allow-Origin:*

ajax跨域例子

原文地址:https://www.cnblogs.com/lightsong/p/10359086.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved