我剛開始使用fetch
API按照ReactJS的建議發送我的數據。在此之前,要將API請求發送到我使用AngularJS的服務器。我目前遇到最煩人的錯誤,發送HTTP請求無法加載正確的會話。SessionID隨每個HTTP請求而變化
首先,我的Web應用程序使用PHP API來公開自己,並且(現在基本上是)現在的一堆.php
文件來獲取應用程序的某些部分。其中之一是authenticateUser.php
,它認證並存儲會話。然而,我注意到我的HTTP請求fetch
沒有像預期的那樣工作,getCurrentUser.php
等其他內容返回NotLoggedIn
,儘管只是驗證。我認爲它可能有一些做的會議,等等authenticateUser.php
,我把我的.php
文件輸出的電流通過session_id
驗證後:(echo array('session_id' => session_id());
我注意到,基本上,當我自己加載自己的網址在瀏覽器中:myapp.com/php/http/user/authenticateUser.php
,用fetch
當session_id
我得到的是一個我得到完全不同的:
return fetch("/php/http/user/authenticateUser.php", {
method: "post",
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
}).then(function(successResponse) {
return successResponse.json();
}, function(errorResponse) {
console.log(errorResponse);
}).then(function(data) {
console.log(data);
});
我進一步檢查,也許認爲這是因爲fetch
被查詢http
版本我的網站,而不是非-HTTP版本的我的網站。所以我改變了authenticateUser.php
的邏輯,這樣如果它檢測到一個會話存在,它會打印出session_id
,否則它會創建並打印出新的會話。每次我發送我的HTTP請求fetch
我得到了不同的session_id
,這意味着我的session_id
隨着每個請求而改變。這裏是我使用的代碼:
header("Content-Type: application/json");
if (session_status() == PHP_SESSION_NONE) {
session_start();
}
http_response_code(200);
echo json_encode(array('session_id' => session_id()),JSON_PRETTY_PRINT);
我是否錯過了與fetch
API或頭部完全不同的東西?或者有沒有人有這方面的經驗可能會啓發我?