博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
原生js封装ajax,实现跨域请求
阅读量:7044 次
发布时间:2019-06-28

本文共 1582 字,大约阅读时间需要 5 分钟。

描述:

需要ajax跨域请求,用cors跨域方案。

服务端设置:

header('Access-Control-Allow-Origin: http://front.ls-la.me');header('Access-Control-Allow-Headers: X-Requested-With');

 

设置了:

后端需要的头信息,原生ajax以表单方式post提交数据,json数据data转换成key1=val1&key2=val2 的字符串格式

1 var ajaxHdFn = function(uri, data, cb) { 2   var getXmlHttpRequest = function() { 3     if (window.XMLHttpRequest) { 4       //主流浏览器提供了XMLHttpRequest对象 5       return new XMLHttpRequest(); 6     } else if (window.ActiveXObject) { 7       //低版本的IE浏览器没有提供XMLHttpRequest对象 8       //所以必须使用IE浏览器的特定实现ActiveXObject 9       return new ActiveXObject("Microsoft.XMLHttpRequest");10     }11 12   };13   var xhr = getXmlHttpRequest();14   xhr.onreadystatechange = function() {15     console.log(xhr.readyState);16     if (xhr.readyState === 4 && xhr.status === 200) {17       //获取成功后执行操作18       //数据在xhr.responseText19       var resJson = JSON.parse(xhr.responseText)20       cb(resJson);21     }22   };23   xhr.open("post", uri, true);24   xhr.setRequestHeader("DeviceCode", "56");25   xhr.setRequestHeader("Source", "API");26   xhr.setRequestHeader("Authentication", "72b32a1f754ba1c09b3695e0cb6cde7f");27   xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");28   var dataStr = '';29   for (var i in data) {30     if (dataStr) {31       dataStr += '&';32     }33     dataStr += i + '=' + data[i];34   }35   xhr.send(dataStr);36 };

 

跨域相关内容

CORS跨域的常见问题以及前后端的设置:

 

data = JSON.stringify(data);xhr.setRequestHeader("Content-Type","application/json");

这样设置,可以直接传json字符串给后端。后端也要做相应处理。

转载于:https://www.cnblogs.com/woodk/p/5577938.html

你可能感兴趣的文章
数据结构-排序
查看>>
kernel不同版本中文件的变更(简洁版)【不断补充】
查看>>
[YC703]ゴミ拾い Easy
查看>>
Cantor-Bernstein-Schroeder定理的证明
查看>>
Elementary Methods in Number Theory Exercise 1.4.30
查看>>
从有理数到实数(序)
查看>>
java运算符优先级
查看>>
首页列表显示全部问答,完成问答详情页布局。
查看>>
CCNA 第五章 变长子网掩码、汇总和TCP/IP故障排除
查看>>
Bash的一些零星笔记
查看>>
update select 多字段
查看>>
构建之法阅读笔记06
查看>>
备份数据库
查看>>
多数据源配置
查看>>
day27-3 matplatlib模块
查看>>
mysql字符集编码乱码测试如下
查看>>
如何将JetBrains IDE 光标由块变为 |
查看>>
C++实现图的搜索(DFS和BFS)
查看>>
PHP xdebug配置和php及nginx网站启用方式
查看>>
winform 打印时的默认单位
查看>>