跨域的基本原理:
    JSONP跨域GET请求是一个常用的解决方案,
    JSONP的最基本的原理是:动态添加一个<script>标签,而script标签的src属性是没有跨域的限制的。这样说来,这种跨域方式其实与ajax XmlHttpRequest协议无关了。

需要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.responseText
19 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 }; 这样设置,可以直接传json字符串给后端。后端也要做相应处理。

跨域相关内容

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

《Ajax——CORS跨域调用REST API 的常见问题以及前后端的设置》

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

最新文章

  1. Speedment -- 利用lambda编写SQL
  2. 跟我一起写 Makefile
  3. [No00002A]26个英语字母的原始象形意义、含义、产生及发展历史
  4. 使用Excel制作万年历(可打印)
  5. POJ 1661 Help Jimmy (dijkstra,最短路)
  6. 【自动化测试】PO思路
  7. weak 弱引用的实现方式
  8. hdu 1270 小希的数表
  9. RabbitMQ安装和配置
  10. Jni 类型转换接口
  11. Implement Trie (Prefix Tree) ——LeetCode
  12. 再论dynamic 关键字
  13. python笔记之bisect模块
  14. linux内核数据包转发流程(三)网卡帧接收分析
  15. Android替换APP字体 — Typeface
  16. 2013~2014年度 NOIP~GDOI总结
  17. Python系列之模块、和字符串格式化
  18. 微信小程序基础之表单Form的使用
  19. Zeroc Ice开发环境搭建
  20. nginx + lua 限制ip地址访问

热门文章

  1. Docker+Nginx使用流程(笔记)
  2. vue传值(父子传值,非父子传值)
  3. 学习集合Collection_通用方法
  4. c++ beep 演奏一次质量不高的天空之城
  5. Netty快速入门(02)Java I/O(BIO)介绍
  6. win + ubuntu 双系统 grub引导项修复
  7. mysql索引创建和使用细节(二)
  8. 元素定位工具Weditor的使用
  9. 多级反向代理java获取真实IP地址
  10. idea初使用之自动编译