2011-01-31 22 views
1

這是我的問題:我有一個網站,example.com,其中index.html文件一推出<script src="website.net/js.js"></script>你可以看到,這是其他Web服務器上。 在js.js我有一些數據,我想發送到PHP。爲此,我使用Ajax。所以,我使用get方法向"website.net/data.php"發出了請求。在data.php文件中一切正常,我收到了值,但我想設置一個cookie,其值是通過ajax收到的。這是問題。 setcookie函數說明cookie已設置,但是當我檢入瀏覽器時,沒有cookie!設置會話/ Cookie的其他網站做出

如果在那裏我用<script src="website.net/js.js"></script> index.html文件是在這裏我提出請求的同一個域中託管它工作正常。如果它在另一個域中,則不再有效。

我已閱讀了關於Ajax跨站點的一些內容,但我不想將任何內容發回給example.com。我只需要將example.com的一些數據發送到website.net,然後根據該值設置一個cookie。

從example.net我拿一個單一的值。在website.net上,我收到了這個值,我檢查它是不是一個cookie集,如果不是,我設置它。在同一個網頁website.net上,我也使用這個cookie。

回答

5

你在哪裏檢查cookie是否設置?在域example.com或域website.net

如果您嘗試訪問使用cookie example.com,那簡直是不可能的寫/訪問或與其他域的餅乾做任何事情。這是出於安全原因。如果可以,每個其他網站都可以訪問您的cookie並輕鬆竊取您的身份。

+0

這意味着,通過JavaScript你只能訪問餅乾的example.com域(如你正在運行從那裏JS),而你可以在服務器上訪問的cookie進行website.net(只)(通過你的服務器邊PHP腳本)。 – poke 2011-01-31 12:44:17

0

嘗試在iframe中設置cookie。我不確定是否可以使用JavaScript爲website.net實際設置cookie,只是因爲js.js是從該域加載的。

0

非常感謝! 我發現一個其他的方式來發送數據到PHP文件沒有Ajax使用基本JavaScript和<img />標籤

例如: example.com有索引:

<script type="text/javscript" src="http://website.net/js.js"></script>

在JS。 js文件我有

var important_data = 123; // 

var src = "http://website.net/process.php?important_data=" + important_data; 
document.write('<img src="' + src + '"/> '); 

現在,每次加載example.com時,它都會向網站發送重要數據。我試圖設置一個cookie在process.php文件,它的工作!我在localhost上測試了這個想法(兩個'網站'都在我的本地服務器上),但它也應該在兩個不同的域之間起作用。我會嘗試查看它是否適用於2個不同的網站。之後,我會回來分享結果。

謝謝!

後來編輯: 我檢查我是否可以使用該方法設置cookie,和它的作品! 它很棒! website.net的cookie不是爲該域設置的,它是爲example.com設置的。正是我想要的!