原生JS实现Ajax跨域请求flask响应内容


Posted in Javascript onOctober 24, 2017

Ajax方法好,网站感觉跟高大上,但由于Js的局限,跨域Ajax无法实现,这里,讲一下解决办法,前提是需要能够自己可以控制flask端的响应。

主要技术:

修改服务器相应的相应头,使其可以相应任意域名。and设置响应头,使其能够相应POST方法。

实现代码:

这里先放flask代码:

from flask import make_response
@app.route('/test',methods=['get','post'])
def Test():
 if request.method=='GET':
  rst = make_response('aaa')
  rst.headers['Access-Control-Allow-Origin'] = '*' #任意域名
  return rst
 else:
  rst = make_response('bbb')
  rst.headers['Access-Control-Allow-Origin'] = '*'
  rst.headers['Access-Control-Allow-Methods'] = 'POST' #响应POST
  return rst

html测试代码:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Title</title>
</head>
<body>
<span id="ss">test get</span>
<button onclick="getAjax()">click</button>

 <p id="time">test post</p>
 <input type="submit" value="click" onclick="getPostAjax()">


<script>
 function getPostAjax() {
  var xmlhttp = new XMLHttpRequest();
  xmlhttp.onreadystatechange=function () {
   if(xmlhttp.readyState=4 && xmlhttp.status ==200 ) {
    document.getElementById("time").innerText = xmlhttp.responseText;
   }
  }

  xmlhttp.open("POST","http://localhost:5000/test",true);
  xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  #这句话可以发送post数据,没有此句post的内容无法传递
  xmlhttp.send();


 }

 function getAjax() {
  var xmlhttp = new XMLHttpRequest();
  xmlhttp.onreadystatechange=function () {
   if(xmlhttp.readyState==4 && xmlhttp.status == 200){
    document.getElementById("ss").innerHTML=xmlhttp.responseText;
   }
  }
  xmlhttp.open("GET","http://localhost:5000/test",true);
  xmlhttp.send();
 }
</script>
</body>
</html>

无法控制响应头

对于这种情况,get请求可以使用jquery完成,post,无能为力。目前前后端均我一人编写,暂不考虑虑此情况。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
baidu博客的编辑友情链接的新的层窗口!经典~支持【FF】
Feb 09 Javascript
解析dom中的children对象数组元素firstChild,lastChild的使用
Jul 10 Javascript
js生成随机数之random函数随机示例
Dec 20 Javascript
D3.js中data(), enter() 和 exit()的问题详解
Aug 17 Javascript
分析js闭包引起的事件注册问题
Mar 29 Javascript
Laydate时间组件在火狐浏览器下有多时间输入框时只能给第一个输入框赋值的解决方法
Aug 18 Javascript
AngularJS指令与控制器之间的交互功能示例
Dec 14 Javascript
Vue.js系列之项目结构说明(2)
Jan 03 Javascript
AngularJs 延时器、计时器实例代码
Sep 16 Javascript
vue 文件目录结构详解
Nov 24 Javascript
微信小程序实践之动态控制组件的显示/隐藏功能
Jul 18 Javascript
写给新手同学的vuex快速上手指北小结
Apr 14 Javascript
JS去掉字符串末尾的标点符号及删除最后一个字符的方法
Oct 24 #Javascript
AngularJS模糊查询功能实现代码(过滤内容下拉菜单排序过滤敏感字符验证判断后添加表格信息)
Oct 24 #Javascript
基于js中this和event 的区别(详解)
Oct 24 #Javascript
浅谈es6语法 (Proxy和Reflect的对比)
Oct 24 #Javascript
使用JQuery实现图片轮播效果的实例(推荐)
Oct 24 #jQuery
通俗易懂地解释JS中的闭包
Oct 23 #Javascript
AngularJS 教程及实例代码
Oct 23 #Javascript
You might like
ajax取消挂起请求的处理方法
2013/03/18 PHP
php启动时候提示PHP startup的解决方法
2013/05/07 PHP
基于CI框架的微信网页授权库示例
2016/11/25 PHP
基于CI(CodeIgniter)框架实现购物车功能的方法
2018/04/09 PHP
js函数排序的实例代码
2013/07/01 Javascript
JavaScript表单通过正则表达式验证电话号码
2014/03/14 Javascript
jQuery中attr()和prop()在修改checked属性时的区别
2014/07/18 Javascript
JavaScript返回网页中超链接数量的方法
2015/04/03 Javascript
js获取url传值的方法
2015/12/18 Javascript
JavaScript中iframe实现局部刷新的几种方法汇总
2016/01/06 Javascript
用JS生成UUID的方法实例
2016/03/30 Javascript
jQuery查看选中对象HTML代码的方法
2016/06/17 Javascript
【经验总结】编写JavaScript代码时应遵循的14条规律
2016/06/20 Javascript
用js实现简单算法的实例代码
2016/09/24 Javascript
AngularJS实现与Java Web服务器交互操作示例【附demo源码下载】
2016/11/02 Javascript
vuejs父子组件通信的问题
2017/01/11 Javascript
javascript验证香港身份证的格式或真实性
2017/02/07 Javascript
AngularJS实现页面跳转后自动弹出对话框实例代码
2017/08/02 Javascript
微信小程序 搜索框组件代码实例
2019/09/06 Javascript
vuex中store存储store.commit和store.dispatch的用法
2020/07/24 Javascript
[03:01]2014DOTA2国际邀请赛 DC:我是核弹粉,为Burning和国土祝福
2014/07/13 DOTA
python使用smtplib模块通过gmail实现邮件发送的方法
2015/05/08 Python
老生常谈Python之装饰器、迭代器和生成器
2017/07/26 Python
Python中py文件转换成exe可执行文件的方法
2019/06/14 Python
Python+AutoIt实现界面工具开发过程详解
2019/08/07 Python
浅析PEP570新语法: 只接受位置参数
2019/10/15 Python
python实现ip地址的包含关系判断
2020/02/07 Python
Python 解析库json及jsonpath pickle的实现
2020/08/17 Python
Python中常用的os操作汇总
2020/11/05 Python
如何利用python生成MD5并去重
2020/12/07 Python
幼儿园英语教学反思
2014/01/30 职场文书
经销商年会策划方案
2014/05/29 职场文书
大学迎新生标语
2014/10/06 职场文书
交警作风整顿剖析材料
2014/10/11 职场文书
公司放假通知范文
2015/04/14 职场文书
《小摄影师》教学反思
2016/02/18 职场文书