服務(wù)器端PHP跨域一般沒有限制,不像瀏覽器端有same origin policy。

為鄧州等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及鄧州網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作、鄧州網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
把服務(wù)器B中的代碼封裝一下,確定好輸入和輸出,比如輸入是一個(gè)HTTP Request,參數(shù)POST過去;輸出是從HTTP Response返回一段XML。之后在服務(wù)器A的代碼中做一個(gè)對服務(wù)器B的HTTP請求并處理返回的XML就好了。
有問題請追問~
因工作需要,客戶端軟件的一些界面用HTML+CSS+Javascript實(shí)現(xiàn),這些文件放在客戶端本地,以本地文件形式加載,但是有些情況下,需要連接服務(wù)器取得一些信息,如果不做任何處理,則請求失敗,返回的信息如下:
No
'Access-Control-Allow-Origin'
header
is
present
on
the
requested
resource.
Origin
'null'
is
therefore
not
allowed
access.
這是因?yàn)闉g覽器跨域策略起作用,阻止了跨域的請求。看看HTTP請求過程就知道。第一次請求后端時(shí)候,瀏覽器意識(shí)到是訪問一個(gè)跨與資源,沒有直接發(fā)送GET請求獲取數(shù)據(jù),而是發(fā)送了一個(gè)OPTIONS請求詢問是否可以訪問該資源。我們稱之為Preflight請求,默認(rèn)因?yàn)橥床呗缘拇嬖冢撜埱蠓祷氐腍eader中沒有'Access-Control-Allow-Origin'屬性,所以訪問失敗。
如果要實(shí)現(xiàn)跨域,關(guān)鍵在于服務(wù)器,客戶端的代碼按照正常的方式編寫即可。對于服務(wù)器,只需要在收到OPTIONS請求的地方,返回的頭信息中增加該屬性即可,代碼如下:
header("Access-Control-Allow-Origin:
*");
注意,一定要在所有信息輸出到客戶端之前設(shè)置。
以上所述是小編給大家介紹的PHP如何實(shí)現(xiàn)跨域的相關(guān)內(nèi)容,希望對大家有所幫助!
可以在頁面定義一個(gè)調(diào)用方法,如下:
復(fù)制代碼
代碼如下:
function
getData(){
$.getJSON("?",
{
"m":"data",//
指定php的文件名字
"act":"getdata",//
指定php文件中的方法
"name":"問題兒童"http://
傳入的參數(shù)
},
function(data)
{
//
獲得返回值
}
});
}
對應(yīng)鏈接下(123.123.123.123)的PHP文件,一般默認(rèn)先調(diào)用index.php文件,通過index.php文件內(nèi)的方法處理后,轉(zhuǎn)到對應(yīng)的php文件,并且找到對應(yīng)的方法,執(zhí)行之。
index.php代碼如下:
復(fù)制代碼
代碼如下:
?php
/**
*
入口文件
*/
$string
=
$_SERVER["REQUEST_URI"];//
獲取訪問的url
$m
=
get_m($string);
$file_path
=
"app/".$m.".php";
define('IS_INDEX',true);//
阻止直接訪問app目錄
require
($file_path);
/**
*
*
獲取訪問php文件
*
@param
string
$url
*/
function
get_m($url){
$strings
=
explode('m=',
$url);
$res
=
explode("",
$strings[1]);
return
empty($res[0])?'index':$res[0];
}
?
data.php代碼如下:
復(fù)制代碼
代碼如下:
?php
/**
*
data文件
*/
$act
=
!empty($_GET['act'])
?
$_GET['act']
:
'';
if
($act
==
'getdata')
{
$name
=
"我的名字叫:".$_REQUEST['name'];
echo
$_REQUEST["callback"]."(".json_encode($name).")";
}
?
成功調(diào)用后,畫面就能獲取到返回的json數(shù)據(jù)了。
分享名稱:php跨域調(diào)用數(shù)據(jù) php cors跨域
網(wǎng)站地址:http://www.chinadenli.net/article48/dddgghp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、微信公眾號(hào)、、網(wǎng)站導(dǎo)航、網(wǎng)站建設(shè)、ChatGPT
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)