(一)json
window.JSON.parse() //用于将一个 JSON 字符串转换为 JavaScript 对象。
window.JSON.stringify() //用于将 JavaScript 值转换为 JSON 字符串。
取值
* 获取json数据
* 以“{”开头的是对象格式获取时用 getJSONObject()
* 以“[”开头的是数组格式获取时用getJSONArray()
json的数据格式是 jsonarray 是数组形式。
json的对象格式是jsonobject 是对象形式。
parsejson是json转换成对象
stringify是将obj转换成json格式。
(二)jsonp
浏览器的同源策略
1.同源:域名、协议、端口都是一样的称为同源,否则为非同源。
非同源可以发送请求的有:a,img,link,script,form.
只有 协议+端口+域名 一模一样才允许发 AJAX 请求
突破同源策略 === 跨域
jsonp可以动态的创建script来给非同源服务器发送请求,但是jsonp只能发送get请求,没有办法发送post及其他请求,这就造成了很大的局限性。
因此,变引入了CORS(Cross-Origin Resource Sharing)跨域来解决这个问题。只需要在后台服务器响应头中添加请求域名即可,就可以使用AJAX进行非同源网站之间的交流了。
同源策略:
和后端人员商量好,在我门请求的路径响应头里加上
response.setHeader('Access-Control-Allow-Origin','http://localhost:8001')
//这样就可以告诉浏览器不要阻止,请求方获取响应内容。
后端代码:
response.statusCode = 200;
response.setHeader('Content-Type', 'text/xml; charset=utf-8');
response.setHeader('Access-Control-Allow-Origin','http://localhost:8888')
response.write(`
{
"note":{
"to":"friend",
"from":"wangliuyong",
"heading":"打招呼",
"content":"hello"
}
}
`);
response.end();