簡體   English   中英

如何使用 JavaScript Fetch 發送和接收數據

[英]How to send and receive data using JavaScript Fetch

我正在嘗試向 JS 中的外部頁面發出請求並返回數據。 這將需要等待響應,因此我認為使用 AJAX 行不通,但我可能會誤會。 我不太精通 JS,所以如果我只是想學習,請原諒我。

這是請求腳本 -

fetch('return.php', { 
    method: 'GET'
 })
 .then(function(response) { return response.json(); })
 .then(function(json) {
     obj = JSON.parse(text);
     document.getElementById("demo").innerHTML = obj.employees[1].firstName + " " + 
     obj.employees[1].lastName;
 });

然后我在返回文件中有一個 JSON 響應 -

var text = '{"employees":[' +
    '{"firstName":"John","lastName":"Doe" },' +
    '{"firstName":"Anna","lastName":"Smith" },' +
    '{"firstName":"Peter","lastName":"Jones" }]}';

每次我嘗試執行此操作時,我都會得到

Unexpected token < in JSON at position 0

我相信這意味着它沒有返回 JSON 數據,但我可能錯了。 如何在函數執行完成后向返回頁面發出請求並返回數據。

謝謝!

Unexpected token < in JSON at position 0強烈暗示 return.php 正在返回某種類型的 html。 嘗試導航到 return.php 以查看它返回的內容,然后進行相應的解析。

你不需要obj = JSON.parse(text); . 由於文本未定義,這將引發錯誤,但您的 fetch 調用在 response.json() 上失敗,因為響應不是 json。

也許這可以解決問題?

fetch('return.php', {
  method: 'GET',
})
  .then((response) => {
    response.json();
  })
  .then((jsonResponse) => {
    const obj = jsonResponse;
    document.getElementById('demo').innerHTML =
      obj.employees[1].firstName + ' ' + obj.employees[1].lastName;
  });

暫無
暫無

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

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