在使用jQuery時,經(jīng)常會遇到跨域請求的情況,尤其是在使用ajax時。
為了能夠讓前端和后端能夠進(jìn)行數(shù)據(jù)交換,我們需要PHP來進(jìn)行服務(wù)端的處理。
$.ajax({
url: 'http://xxxx.com/api.php',
type: 'GET',
data: {
name: 'Tom',
age: 18
},
dataType: 'JSONP',
success: function(res) {
console.log(res);
},
error: function(err) {
console.log(err);
}
});
從上面的代碼可以看出,我們使用了jQuery的ajax方法來進(jìn)行請求,其中需要注意的是,url需要填寫你的后端代碼所在地址。
在dataType中選擇JSONP,這是因為ajax默認(rèn)是同源請求,而JSONP是用來進(jìn)行跨域請求的。
<?php
header('Content-Type: application/json');
$name = $_GET['name'];
$age = $_GET['age'];
$data = array(
'name' => $name,
'age' => $age
);
echo $_GET['callback'] . '(' . json_encode($data) . ')';
?>
php的處理代碼中需要注意,在返回數(shù)據(jù)時需要使用callback參數(shù),并把數(shù)據(jù)用JSON格式進(jìn)行編碼。
這樣,我們就可以通過ajax來與跨域的后端進(jìn)行數(shù)據(jù)交換了。