jsonp

时间:2025-02-07 21:34:46
JSON:前后端交换数据的一种格式
* JSON字符串:往往都是在后端向前端发送数据时传输的格式。
* JSON对象:往往都是前端希望得到的。数据或对象或它们之间的嵌套。
JSON字符串与JSON对象之间的转换
* (JSON格式的字符串):正解析,将JSON字符串转换为JSON对象,没有副作用。
* (JSON对象):反解析,将JSON对象转换为JSON字符串,没有副作用。 
同源组策略:Ajax请求地址与当前页面的地址必须得是同协议,同主机,同端口才可以正常发送Ajax请求,这三者有任何一个不一样,则判定此次请求是跨域请求,浏览器会阻止这个请求行为。
跨域解决方式
* CORS
* 服务器反向代理
* JSONP
JSONP:一种解决跨域问题的方法。工作机制:利用动态创建一个script标签并利用它的src属性向服务器发送一次HTTP请求,并提前声明好一个回调函数,回调函数的函数名利用callback请求参数传递给后端。后端接收到来自前端的请求后,获取callback请求的请求参数并拼接一个调用函数的JS代码段并将要返回给前端的数据以实参的形式存在。前端接收到来自后端的响应后,会将后端的返回内容当做JS代码来执行即调用一个函数,并用一个形参来接收后端向要传递过来的数据。
// 回调函数:当成功接收到来自后端的响应之后会自动调用这个函数,并且该函数中的形参就代表了后端要返回的数据
		function jsonpcallback(data){
			console.log(data[0])	
		}

		query.onclick = function(){
			let script = document.createElement('script');
			script.setAttribute('src',"http://10.35.161.142/?callback=jsonpcallback&name="+queryname.value)
			$("body").appendChild(script)
		}