簡體   English   中英

JavaScript - POST 到 URL 不發送數據

[英]JavaScript - POST to URL not sending data

我正在嘗試將 POST 數據從 Chrome 擴展程序發送到我控制的網站。 但是,在發送 POST 數據時,我沒有收到任何數據。

我使用這個 function 發送它:

async function httpPost(url, data) {
    const response = await fetch(url, {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json'
        },
        body: JSON.stringify(data)
    });
    return response.json();
}

它被這樣稱呼:

const post = await httpPost("https://example.com/api", extracted);

其中extracted包含類似於{entries: [], total: 0 }的內容。

我已經在httpPostresponsepost上嘗試過console.log ,除了它們工作正常之外沒有提供任何有用的東西。

在服務器端,為$_POST做一個isset確實有效。 請求正在發送並且正在被接收。 但是,做file_put_contents('test.txt', print_r($_POST)); 將文件留空。 它正在被訪問,只是空的。

CORS 標頭已設置:

header("Access-Control-Allow-Credentials: true");
header("Access-Control-Max-Age: 1000");
header("Access-Control-Allow-Headers: X-Requested-With, Content-Type, Origin, Cache-Control, Pragma, Authorization, Accept, Accept-Encoding");
header("Access-Control-Allow-Methods: *");
header('Content-Type: application/json');

這個非常令人沮喪的問題是什么?

所需的 output:能夠接收我使用httpPost發送的 POST 數據。

請參閱https://www.php.net/manual/en/function.print-r.php - 如果您想捕獲print_r的字符串,您可以將其寫入文件,例如字符串!需要設置return參數,如文檔中所述。 現在,這可能只是將 post 變量打印回 AJAX 響應,而不是打印到文件中。

例如試試這個:

file_put_contents('test.txt', print_r($_POST, true));

編輯:

由於您實際上是在請求中發送 JSON ,因此以上都不是特別適用的。

類似於使用 PHP 接收 JSON POST 中的答案

您可以將 JSON 數據讀入字符串,如下所示:

$json = file_get_contents('php://input');

現在,一般來說,要處理這個問題,您可以在其上運行json_decode()以將其轉換為 PHP 變量(對象或數組,具體取決於確切的內容和您的偏好)。 但是如果你只是想把這些數據寫入一個文件,你還不如直接寫原始的 JSON,所以你可以簡單地這樣做:

file_put_contents('test.txt', $json);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM