json与jsonp的应用

(一)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();


 

猜你喜欢

转载自blog.csdn.net/weixin_43595461/article/details/91351575
今日推荐