原生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检测Firefox浏览器是否启用了Firebug的代码
Dec 28 Javascript
js当一个变量为函数时 应该注意的一点细节小结
Dec 29 Javascript
javascript window.confirm确认 取消对话框实现代码小结
Oct 21 Javascript
jquery实现select选中行、列合计示例
Apr 25 Javascript
Node.js巧妙实现Web应用代码热更新
Oct 22 Javascript
bootstrap实现图片自动轮播
Dec 21 Javascript
VUE中的无限循环代码解析
Sep 22 Javascript
angular2系列之路由转场动画的示例代码
Nov 09 Javascript
jquery实现企业定位式导航效果
Jan 01 jQuery
JS写谷歌浏览器chrome的外挂实例
Jan 11 Javascript
详解js静态检查工具eslint配置文件
Nov 23 Javascript
vue-element-admin 菜单标签失效的解决方式
Nov 12 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
PHP中操作ini配置文件的方法
2013/04/25 PHP
对于ThinkPHP框架早期版本的一个SQL注入漏洞详细分析
2014/07/04 PHP
thinkPHP实现表单自动验证
2014/12/24 PHP
PHP在线调试执行的实现方法(附demo源码)
2016/04/28 PHP
详解Laravel5.6 Passport实现Api接口认证
2018/07/27 PHP
Laravel 将数据表的数据导出,并生成seeds种子文件的方法
2019/10/09 PHP
Javascript中的数学函数
2007/04/04 Javascript
学习ExtJS border布局
2009/10/08 Javascript
js 动态选中下拉框
2009/11/26 Javascript
js与jquery获取父元素,删除子元素的两种不同方法
2014/01/09 Javascript
JavaScript中的普通函数与构造函数比较
2015/04/07 Javascript
将页面table内容与样式另存成excel文件的方法
2015/08/05 Javascript
基于jQuery通过jQuery.form.js插件使用ajax提交form表单
2015/08/17 Javascript
详解BootStrap中Affix控件的使用及保持布局的美观的方法
2016/07/08 Javascript
Google 地图控件集详解及实例代码
2016/08/06 Javascript
浅谈js基本数据类型和typeof
2016/08/09 Javascript
jQuey将序列化对象在前台显示地实现代码(方法总结)
2016/12/13 Javascript
JavaScript中的return布尔值的用法和原理解析
2017/08/14 Javascript
JavaScript笛卡尔积超简单实现算法示例
2018/07/30 Javascript
判断iOS、Android以及PC端的示例代码
2018/11/15 Javascript
图文讲解用vue-cli脚手架创建vue项目步骤
2019/02/12 Javascript
移动端 Vue+Vant 的Uploader 实现上传、压缩、旋转图片功能
2019/06/10 Javascript
Vue 中 filter 与 computed 的区别与用法解析
2019/11/21 Javascript
Vue-cli打包后如何本地查看的操作
2020/09/02 Javascript
vue使用exif获取图片旋转,压缩的示例代码
2020/12/11 Vue.js
[52:44]VGJ.T vs infamous Supermajor小组赛D组败者组第一轮 BO3 第一场 6.3
2018/06/04 DOTA
[49:11]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第二场 12.20
2020/12/23 DOTA
完美解决python遍历删除字典里值为空的元素报错问题
2016/09/11 Python
Python学习笔记之if语句的使用示例
2017/10/23 Python
Python实现图片指定位置加图片水印(附Pyinstaller打包exe)
2021/03/04 Python
分享全球十款超强HTML5开发工具
2014/05/14 HTML / CSS
Speedo速比涛法国官方网站:泳衣、泳镜、泳帽、泳裤
2019/07/30 全球购物
信息技术毕业生自荐信范文
2014/03/13 职场文书
2015年七一建党节演讲稿
2015/03/19 职场文书
2016大学生社会实践心得体会范文
2016/01/14 职场文书
python获取对象信息的实例详解
2021/07/07 Python