Ajax的同源政策与跨域请求

同源政策

Ajax只能向自己的服务器发送请求。A网站中的HTML文件只能向A网站服务器中发送Ajax请求,A网站是不能向B网站发送Ajax请求的。

使用JSONP解决同源限制问题

jasonp = json with padding
不属于ajax请求,但是可以模拟Ajax请求。

利用script标签发送请求
解决的是get请求,传递参数需要拼接url

封装

客户端(浏览器端)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function jsonp(options) {
// 动态创建script标签
var script = document.createElement('script');
// 拼接字符串的变量
var params = '';
for(var attr in options.data) {
params += '&' + attr + '=' options.data[attr];
}
var fnName = 'myJsonp' + Math.random().toString().replace('.', '');
// 将它变成全局函数
window[fnName] = options.success;
// 为script标签添加src属性
script.src = options.url + '?callback=' + fnName + params;
// 将script标签追加到页面中
document.body.appendChild(script);
// 为script标签添加onload事件
script.onload = function() {
document.body.removeChild(script);
}
}

服务器端

💡 阅读更多

Ajax请求的学习与尝试

Ajax学习笔记

这几天在学习node.js,看到Ajax的部分内容比较零散,很难记忆,但是Ajax又是相当重要的知识,实际开发中也常常会用到,所以写个笔记来整理一下。


请求参数的格式

在请求头中指定Content-Type属性的值

1. application/x-www-form-urlencoded

name=zhangsan&age=20&sex=男

2. application/json

{name: 'zhangsan', age: '20', sex: '男'}

注意:get请求是不能提交json对象数据格式的,传统网站的表单提交也是不支持json对象数据格式的。

Ajax状态码

💡 阅读更多

初学前端框架React

这几天又想折腾自己的破博客了,下了个主题,源代码文件夹里一看全是React,笑死,根本看不懂。

怎么办?硬着头皮学呗。而且本来也计划要学一下前端的框架的。

假期里学了html css js,但是实际开发中用这些效率实在是太低了,非常容易出问题不说,出了问题根本没法改,代码结构太乱了,一万个人一万种写法。所以前端也发展出了自己的框架,目前主流的就是vue react angular。本来是想学vue的,因为vue是比较新的,最近这几年特别火,中国的大部分公司前端都是用vue的,而且这语言本身就是中国人写的。

但是当时想学的时候看了半天看不明白,跑去学JavaScript基础了,现在倒是对React挺感兴趣的了。

跟着React官网教程做的TicTacToe,做倒是做出来了,就是代码看着还是有点逻辑混乱,毕竟没接触过这种框架式的前端开发,有点看不明白。

💡 阅读更多

8.18暑假夏日夜未央(尬写)

今天是8月18日,暑假快要结束了,开学就是大三,莫名有点焦虑,但是现在生活的状态就是纯摆烂,就是看到了世界的参差,自己和身边人的差距,但是自个完全不想努力。不知道这种状态什么时候能改变。

标题‘夏日夜未央’这个名字是在MTL的微博看到的,本来是8.7的活动,但是被突如其来的一波疫情完美干碎,好在上海控制住了,在夏天的末尾还能举办最后一次这样的活动,夏日祭也就改成了夏日夜未央。喜欢这个名字,联想到月曜夜未央,听说还不错,下次看看。

💡 阅读更多

前端学习之第一个有点像样的网页

还是看着b站上的视频学的,第一次写一个像模像样的网页,还是挺有成就感的。

用的都是html和css的基础,还没有涉及到js,虽然现在学的这些都是实际开发中不会用到的,但是这种一点一点跟着教程把一个网页用最原始的元素搭起来的感觉真到好爽啊。

首页

💡 阅读更多
Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×