因工作需要,客戶端軟件的一些界面用HTML+CSS+Javascript實現(xiàn),這些文件放在客戶端本地,以本地文件形式加載,但是有些情況下,需要連接服務(wù)器取得一些信息,如果不做任何處理,則請求失敗,返回的信息如下:

創(chuàng)新互聯(lián)專注于企業(yè)成都全網(wǎng)營銷、網(wǎng)站重做改版、扶余網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、成都h5網(wǎng)站建設(shè)、成都做商城網(wǎng)站、集團公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為扶余等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
No
'Access-Control-Allow-Origin'
header
is
present
on
the
requested
resource.
Origin
'null'
is
therefore
not
allowed
access.
這是因為瀏覽器跨域策略起作用,阻止了跨域的請求。看看HTTP請求過程就知道。第一次請求后端時候,瀏覽器意識到是訪問一個跨與資源,沒有直接發(fā)送GET請求獲取數(shù)據(jù),而是發(fā)送了一個OPTIONS請求詢問是否可以訪問該資源。我們稱之為Preflight請求,默認(rèn)因為同源策略的存在,該請求返回的Header中沒有'Access-Control-Allow-Origin'屬性,所以訪問失敗。
如果要實現(xiàn)跨域,關(guān)鍵在于服務(wù)器,客戶端的代碼按照正常的方式編寫即可。對于服務(wù)器,只需要在收到OPTIONS請求的地方,返回的頭信息中增加該屬性即可,代碼如下:
header("Access-Control-Allow-Origin:
*");
注意,一定要在所有信息輸出到客戶端之前設(shè)置。
以上所述是小編給大家介紹的PHP如何實現(xiàn)跨域的相關(guān)內(nèi)容,希望對大家有所幫助!
服務(wù)器端PHP跨域一般沒有限制,不像瀏覽器端有same origin policy。
把服務(wù)器B中的代碼封裝一下,確定好輸入和輸出,比如輸入是一個HTTP Request,參數(shù)POST過去;輸出是從HTTP Response返回一段XML。之后在服務(wù)器A的代碼中做一個對服務(wù)器B的HTTP請求并處理返回的XML就好了。
有問題請追問~
直接傳?你是指你把另一臺服務(wù)器的路徑當(dāng)成本地路徑直接寫入嗎??我這里提供兩種方法。。
1。另一臺服務(wù)器開 FTP 服務(wù),主服務(wù)器通過 PHP 與 FTP 服務(wù)器對接,實現(xiàn)文件傳輸。
2。另一臺服務(wù)器上放置一個 PHP 程序。用來接收數(shù)據(jù)。主服務(wù)器通過 PHP 以 POST 方式把文件提交到另一臺服務(wù)器。
通常是用json,你可以用php的函數(shù)json_encode(),轉(zhuǎn)換為json格式,然后輸出進(jìn)行傳遞
方法一:
文件夾:/home/web/attachments
虛擬二級目錄到/home/web/zxsv/下(支持同局域網(wǎng)的服務(wù)器)
這樣多個子域名進(jìn)行上傳的設(shè)計時,只需要attachments目錄映射為相關(guān)的域名的二級目錄,這樣就可實現(xiàn)多個子域名共享一個附件服務(wù)器了,這種方法最好是用局域網(wǎng)中的附件服務(wù)器,這樣流量是分開的,當(dāng)然訪問附件的域名是apache,ngixn,IIS等的虛擬二級目錄就不說了,好處是現(xiàn)有程序不做任何修改,唯一壞處就是兩臺服務(wù)器必須在一個局域網(wǎng)中,當(dāng)然你用單臺也就沒這個問題了
方法二:FTP同步更新
PHP是支持FTP的,給個FTP類里面(不是我寫的,只是加了個建立多級目錄),自己看著辦吧,上傳后調(diào)用FTP類,同步到FTP服務(wù)器中,好處是現(xiàn)有程序只需要在上傳那段加上FTP上傳就行了,壞處就是一定要支持FTP
?php
$ftp=new Ftp;
//print_r($ftp-nlist(”"));
$ftp-makedir(”3″);
//$ftp-put(”comment.php”,”1.txt”);
$ftp-bye();
//R FTP 處理;
class ftp {
var $ftpUrl = ‘’;
var $ftpUser = ‘zxsv’;
var $ftpPass = ‘111111′;
var $ftpDir = ‘/zxsv/’;
var $ftpR = ”; //R ftp資源;
var $status = ”;
//R 1:成功;2:無法連接ftp;3:用戶錯誤;
function ftp() {
if ($this-ftpR = ftp_connect($this-ftpUrl, 21)) {
if (ftp_login($this-ftpR, $this-ftpUser, $this-ftpPass)) {
if (!empty($this-ftpDir)) {
ftp_chdir($this-ftpR, $this-ftpDir);
}
ftp_pasv($this-ftpR, true);//R 啟用被動模式;
$status = 1;
} else {
$status = 3;
}
} else {
$status = 2;
}
}
//R 切換目錄;
function cd($dir) {
return ftp_chdir($this-ftpR, $dir);
}
//建立目錄
function mkdir($dir){
return ftp_mkdir($this-ftpR, $dir);
}
function makedir($dir) {
if(!$dir) return 0;
$dir = str_replace( “\\”, “/”, $dir );
$mdir = “”;
foreach(explode( “/”, $dir ) as $val ) {
$mdir .= $val.”/”;
if( $val == “..” || $val == “.” ) continue;
if(!@mkdir($mdir)){
echo “創(chuàng)建目錄 [".$mdir."]失敗.”;
//exit;
}
}
return true;
}
//刪除目錄
function rmdir($dir){
return ftp_rmdir($this-ftpR, $dir);
}
//R 返回當(dāng)前路勁;
function pwd() {
return ftp_pwd($this-ftpR);
}
//R 上傳文件;
function put($localFile, $remoteFile = ”) {
if ($remoteFile == ”) {
$remoteFile = end(explode(’/', $localFile));
}
$res = ftp_nb_put($this-ftpR, $remoteFile, $localFile, FTP_BINARY);
print_r($res);
while ($res == FTP_MOREDATA) {
$res = ftp_nb_continue($this-ftpR);
}
if ($res == FTP_FINISHED) {
return true;
} elseif ($res == FTP_FAILED) {
return false;
}
}
//R 下載文件;
function get($remoteFile, $localFile = ”) {
if ($localFile == ”) {
$localFile = end(explode(’/', $remoteFile));
}
if (ftp_get($this-ftpR, $localFile, $remoteFile, FTP_BINARY)) {
$flag = true;
} else {
$flag = false;
}
return $flag;
}
//R 文件大小;
function size($file) {
return ftp_size($this-ftpR, $file);
}
//R 文件是否存在;
function isFile($file) {
if ($this-size($file) = 0) {
return true;
} else {
return false;
}
}
//R 文件時間
function fileTime($file) {
return ftp_mdtm($this-ftpR, $file);
}
//R 刪除文件;
function unlink($file) {
return ftp_delete($this-ftpR, $file);
}
function nlist($dir = ‘/service/resource/’) {
return ftp_nlist($this-ftpR, $dir);
}
//R 關(guān)閉連接;
function bye() {
return ftp_close($this-ftpR);
}
}
?
文章名稱:php跨域傳輸數(shù)據(jù),php設(shè)置跨域訪問
本文地址:http://chinadenli.net/article46/dsehdeg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、網(wǎng)站導(dǎo)航、App設(shè)計、用戶體驗、企業(yè)建站、Google
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)