2015-11-22 73 views
3

我寫完一個網站,目前正在部署一個託管服務。該網站由同一臺服務器上託管的2個獨立域組成。 (www.domain1.com & www.domain2.com)跨域上傳類

形勢

當移動這些領域的託管服務,我計算過,1個腳本不能正常工作,因爲它是在本地服務器上。這個腳本是php中的一個自定義上傳類。該腳本位於www.domain1.com上,但需要將該文件上傳至www.domain2.com。

我的本地服務器是一個簡單文件結構的Xampp服務器。

C:/ XAMPP/htdocs中

  • 域1/uploadscript.php

  • 域2/destinationfolder/

我目前使用的$_SERVER['DOCUMENT_ROOT']功能向其他導航域。此方法適用於本地服務器,但不適用於託管版本,請參閱下文。


主要問題

本地服務器 print_r ($_SERVER['DOCUMENT_ROOT']);

= C:/ XAMPP/htdocs中

在domain1.com print_r ($_SERVER['DOCUMENT_ROOT']);

= /家庭/ MYNAME /域/域1 /的public_html/

在domain2.com print_r ($_SERVER['DOCUMENT_ROOT']);

= /家庭/ MYNAME /域/域2 /的public_html/

$_SERVER['DOCUMENT_ROOT']未指向「域」文件夾,但已指向「public_html」


的問題(S)

我如何向我的服務器上的「域」文件夾導航? 跨域上傳是否還有其他必要的事情?

+0

見我不知道那個正確理解什麼是「**我如何嚮導航‘域’文件夾,我的服務器上**」的意思。你能解釋一下嗎? –

+0

@SergioIvanuzzo當然:)!總之,我怎樣才能從domain1/public_html /到domain2/public_html編碼。目前我正在使用'$ _SERVER ['DOCUMENT_ROOT']'嘗試此操作,但是在domain1的腳本中使用此操作會將我帶到/ home/myname/domains/domain1/public_html /。因此,對於我來說,無法從domain1上的腳本內導航到domain2上的目標。我需要這個,因爲我使用'move_uploaded_file($ tempname,$ destination)'方法將上傳的文件移動到目的地。謝謝您的幫助! – NealVDV

+0

看來你正在做一些奇怪的事情。爲了將數據從域A發送到域B,所有你需要的是域A上的簡單表單**和域B上的**請求處理程序**並且還需要配置CORS(如我在下面的答案中所寫) –

回答

1

如果你想發送一些跨域數據,你應該設置Access-Control-Allow-Origin頭。

爲此,您可以在您的.htaccess象下面這樣:

Header set Access-Control-Allow-Origin "*" 

要確保你在你的Apache服務器啓用mod_headers中

對於自定義訪問,您可以使用類似https://stackoverflow.com/a/10605009/5397119之類的東西。

https://stackoverflow.com/a/22331450/5397119

+0

嗨,我試着重新分配你提到的上傳腳本。所以目前的情況是形式是** domain1 **,上傳腳本位於** domain2 **。 'enctype'就位(已經設置)。標題的設置與上面提供的行一樣。現在,當我在腳本運行之前嘗試代碼內部服務器錯誤_500_時。我覺得這可能是這個頭設置Access-Control-Allow-Origin「*」的東西。如何讓「mod_headers」?謝謝! – NealVDV

+0

@NealVDV嗨。在apache error.log中發生了什麼? –

+0

嗨,我試圖找到一個錯誤日誌,但沒有發現任何有用的東西。我以另一種方式解決了這個問題。我想感謝你的努力! – NealVDV