首页 > 代码库 > ajax请求

ajax请求

0121 { ajax-post-get-跨域的原理JSONP-php常用语法 }

1. ajax

1.1. ajax是什么

通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

 

1.2. ajax的用法

1.2.1 get请求

//new一个xml对象
var xhr = new XMLHttpRequest() ;
//设置请求航,get请求方式,请求的文件为data.php
xhr.open( ‘get‘ , ‘data.php‘ ) ;
//get的请求主题为空
xhr.send( null ) ;

//监听XMLHttpRequest的状态改变,一旦改变就执行函数
xhr.onreadystatechange = function(){

    if( xhr.readyState == 4 && xhr.status == 200 ){
        var data = http://www.mamicode.com/xhr.responseText ;
        console.log(data);
    }
} ;

 

1.2.2 post请求

var xhr = new XMLHttpRequest() ;
xhr.open( ‘post‘ , ‘data.php‘ ) ;
//post请求一定要设置请求头
xhr.setRequestHeader( ‘Content-Type‘,‘application/x-www-form-urlencoded‘) ;
//请求主题,即往后台传送的数据
xhr.send( ‘name=tom&addr=USA‘ ) ;

xhr.onreadystatechange = function(){
    if( xhr.readyState == 4 && xhr.status == 200 ){
        var test = xhr.responseText ;
        console.log( JSON.parse(test) );
    }
} ;

 

 

1.2.3 字符串转对象JSON.parse()  

如果后台发送过来的数据是字符串类型的对象,需要用JSON.parse()将字符串转换为对象

var str = ‘{ "name":"jack" , "addr":"USA" }‘ ;
console.log( JSON.parse(str) );

 

注意点:对象里的引号不能省略并且一定要是双引号

 

 

 

 

 

1.3. 跨域

同源策略是浏览器的一种安全策略,所谓同源是指,域名,协议,端口完全相同。

不同源则是跨域

利用了script标签向其他网站请求文件不会被阻止的特性进行跨域

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>json.parse</title>
</head>
<body>

<script>
    function suggest_so( data ){
        console.log(data);
    }
</script>

<script src="https://sug.so.360.cn/suggest?callback=suggest_so&encodein=utf-8&encodeout=utf-8&format=json&fields=word,obdata&word=it技术"></script>

<script>
   suggest_so()
</script>

</body>
</html>

 

 

 

 

 

 

 

 

 

2. PHP常用语法

4.1 json_encode PHP数组转化为json格式字符串

如:将接收来的$_POST数组转化为json格式的字符串

$datas = json_encode( $_POST ) ;

 

4.2 file_get_contents加载外部文件

如,将外部json格式的文件加载进来放到$jn变量里

$jn = file_get_contents( "jsn.json" );

 

ajax请求