原生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 相关文章推荐
JavaScript弹簧振子超简洁版 完全符合能量守恒,胡克定理
Oct 25 Javascript
javascript如何创建表格(javascript绘制表格的二种方法)
Dec 10 Javascript
Js表格万条数据瞬间加载实现代码
Feb 20 Javascript
详解JavaScript中Date.UTC()方法的使用
Jun 12 Javascript
javascript中setInterval的用法
Jul 19 Javascript
javascript自定义滚动条实现代码
Apr 20 Javascript
浅谈jQuery绑定事件会叠加的解决方法和心得总结
Oct 26 Javascript
Bootstrap源码解读按钮(5)
Dec 23 Javascript
Angular父子组件通过服务传参的示例方法
Oct 31 Javascript
浅谈JavaScript面向对象--继承
Mar 20 Javascript
JavaScript 严格模式(use strict)用法实例分析
Mar 04 Javascript
使用jquery实现轮播图效果
Jan 02 jQuery
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
基于PHP+MySQL的聊天室设计
2006/10/09 PHP
关于mysql字符集设置了character_set_client=binary 在gbk情况下会出现表描述是乱码的情况
2013/01/06 PHP
探讨:array2xml和xml2array以及xml与array的互相转化
2013/06/24 PHP
PHP遍历目录函数opendir()、readdir()、closedir()、rewinddir()总结
2014/11/18 PHP
php魔法函数与魔法常量使用介绍
2017/07/23 PHP
PHP批量删除jQuery操作
2017/07/23 PHP
tp5.0框架隐藏index.php入口文件及模块和控制器的方法分析
2020/02/11 PHP
Alliance vs Liquid BO3 第三场2.13
2021/03/10 DOTA
游览器中javascript的执行过程(图文)
2012/05/20 Javascript
js根据给定的日期计算当月有多少天实现思路及代码
2013/02/25 Javascript
原生js拖拽(第一课 未兼容)拖拽思路
2013/03/29 Javascript
jQuery使用技巧简单汇总
2013/04/18 Javascript
仿百度输入框智能提示的js代码
2013/08/22 Javascript
PHP abstract与interface之间的区别
2013/11/11 Javascript
js实现局部页面打印预览原理及示例代码
2014/07/03 Javascript
jquery利用json实现页面之间传值的实例解析
2016/12/12 Javascript
javascript实现日期三级联动下拉框选择菜单
2020/12/03 Javascript
BootStrap点击保存后实现模态框自动关闭的思路(模态框)
2017/09/26 Javascript
vue项目中公用footer组件底部位置的适配问题
2018/05/10 Javascript
如何实现一个简易版的vuex持久化工具
2019/09/11 Javascript
electron+vue实现div contenteditable截图功能
2020/01/07 Javascript
详解webpack-dev-middleware 源码解读
2020/03/23 Javascript
Vue自定义全局弹窗组件操作
2020/08/11 Javascript
Python模块学习 re 正则表达式
2011/05/19 Python
python获取标准北京时间的方法
2015/03/24 Python
在python中对变量判断是否为None的三种方法总结
2019/01/23 Python
Python使用turtle库绘制小猪佩奇(实例代码)
2020/01/16 Python
在TensorFlow中实现矩阵维度扩展
2020/05/22 Python
CSS3 函数技巧 用css 实现js实现的事情(clac Counters Tooltip)
2017/08/15 HTML / CSS
标签和贴纸印刷:Lightning Labels
2018/03/22 全球购物
女性时尚网购:Chic Me
2019/07/30 全球购物
PHP数据运算类型都有哪些
2013/11/05 面试题
广州御银科技股份有限公司试卷(C++)
2016/11/04 面试题
工作表扬信的范文
2014/01/10 职场文书
2014迎接教师节演讲稿
2014/09/10 职场文书
领导欢迎词致辞
2015/01/23 职场文书