ホームページ > バックエンド開発 > PHPチュートリアル > 回避すべき fetch() および XMLHttp エラー

回避すべき fetch() および XMLHttp エラー

Susan Sarandon
リリース: 2024-11-26 13:27:11
オリジナル
253 人が閲覧しました

fetch() & XMLHttp errors to avoid

残念なことに、私はこれらのエラーを回避できませんでした。これが、新しいバージョンを完全にダウンロードせずに Web ページを更新しようとする他の人がこの問題を回避するのに役立つことを願っています。私が最終的に完成したコードは機能するようです:

async function fetchDbSingle(url, str) {
  const dataToSend = str;
  console.log('fetchDbSingle: ' + str);

  try {
    const response = await fetch(url, {
      method: 'POST',
      headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
      body: dataToSend
    });

    if (!response.ok) {
      throw new Error('Network response was not ok');
    }

    const data = await response.json();
    return data;
  } catch (error) {
    console.error('Error fetching data:', error);
    throw error; // Re-throw the error to be handled by the caller
  }
}
ログイン後にコピー

await は、非同期関数内で動作し、データにアクセスする前にデータが到着していることを確認します。通常のコードから非同期関数を呼び出す必要がある場合、構文は .then:
です。

fetchDbSingle(url, str).then(data => {
  console.log("Received data:", data);
  // Use the data here
}).catch(error => {
  console.error("Error fetching data:", error);
}); 

ログイン後にコピー

この特別な構文を使用せずにデータにアクセスしようとすると、データが到着する前にアクセスしているため、データは未定義になります。

マークされた場所以外のデータにアクセスしようとすると、データは未定義になります。

私のプログラムでは、fetch() がデータベースを読み取る PHP スクリプトを呼び出しています。

ここでは、経験豊富な人には意味がわからないかもしれないが、もっと早く知っていればよかったと思ういくつかの警告を示します。

  • PHP はデータをエコーで送信し、この場合、エコーは画面に表示されないことに注意してください。
  • PHP ファイルには PHP コードのみが含まれていることを確認してください。 HTMLはありません。 HTML が含まれている場合、返されるデータにはすべての HTML が含まれるため、非常に混乱することになります。
  • PHP ファイル (およびそれに含まれるファイル) に echo ステートメントが 1 つだけ含まれていることを確認してください。 (ああ、含まれているファイルの html または echo を確認してください)
  • echo で送信されるものを Json_encode します。 JavaScript json を解析して JavaScript 配列にすることもできますが、それは必須ではありません。

私が上記の警告に言及した理由を知りたい人がいたら、私が犯した間違いと、それを修正するのにどのように 1 週​​間かかったのかについてエッセイを書くことができます。そうすれば、あなたは笑いながら優越感を感じることができます。

以上が回避すべき fetch() および XMLHttp エラーの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート