2015-09-03 30 views
0

我正在使用javascript處理Core PHP。在這個模塊中,我需要從一個域訪問另一個域,託管PHP文件,通過使用Javascript將數據存儲在數據庫中。我正在從域到域訪問文件(每個人都可以訪問,這不是問題)。但是在共享數據之後,我需要去PHP文件來存儲數據。如何訪問不同域中的php文件

if (message != '') { 
    $.post(baseUrl+"chat.php?action=sendchat", { 
     to: chatboxtitle, message: message} , function(data){ } 

JS:Chat.js &的jquery.js
CSS:Chat.css

域2訪問在域1中的Chat.js但它沒有訪問chat.php文件

+0

如果你正在做跨域請求,則需要在服務器端實現這一點。查找'Access-Control-Allow-Origin' ...這需要在服務器端響應'OPTIONS'請求時啓用。 – raduation

+0

如何在服務器端啓用Access-Control-Allow-Origin? – Suresh

+0

查看 - 有教程! – raduation

回答

0

通過使用CORS標頭「的訪問控制允許來源」來解決這個問題。

首先,你需要添加在PHP文件位於與下面的代碼的.htaccess文件。

# Always set these headers. 
Header always set Access-Control-Allow-Origin "*" 
Header always set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT" 
Header always set Access-Control-Max-Age "1000" 
Header always set Access-Control-Allow-Headers "x-requested-with, Content-Type, origin, authorization, accept, client-security-token" 

# Added a rewrite to respond with a 200 SUCCESS on every OPTIONS request. 
RewriteEngine On 
RewriteCond %{REQUEST_METHOD} OPTIONS 
RewriteRule ^(.*)$ $1 [R=200,L] 

我希望如果有人面對這個問題,這是對您有所幫助....

+0

我認爲這是解決這個問題的最佳和每個綠色解決方案... – Suresh

1

使用curl訪問會更好,而不是從java-script向其他域發送請求,除非其他域允許跨域請求,否則該瀏覽器不允許跨域請求。

這樣你就可以創建一個在您的服務器多一個php文件和發送Ajax請求到該文件,並從那裏使用捲曲客戶端連接另一個域,其適當和安全的方式做。

+0

我可以知道如何在域之間使用那個cUrl – Suresh

+0

在你的服務器上創建PHP文件併發送ajax請求到那個文件中,使用下面的代碼。 <?php //創建捲曲資源 $ ch = curl_init(); //設置網址 curl_setopt($ CH,CURLOPT_URL, 「example.com」); //將傳輸​​作爲字符串返回 curl_setopt($ ch,CURLOPT_RETURNTRANSFER,1); // $輸出包含輸出串 $輸出= curl_exec($ CH); //關閉卷曲資源釋放系統資源 curl_close($ CH); ?> –

+0

你知道如何在服務器端運行會話......我試圖通過CORS在服務器端運行。可能嗎? – Suresh