为了账号安全,请及时绑定邮箱和手机立即绑定

为什么 PHP echo 返回完整标记的 html 而不是 echo 中的内容?

为什么 PHP echo 返回完整标记的 html 而不是 echo 中的内容?

PHP
临摹微笑 2021-10-15 15:33:20
我有一个带有一些文本输入的 html 页面,一些使用 ajax 从这些输入中发布数据的 jquery,还有一个 php 脚本来处理输入数据。php 脚本然后返回一些数据。但是,警报包含一堆我不想返回的 html 标记。我不确定它为什么这样做。我的 HTML:<!DOCTYPE html><html><head>    <meta charset="UTF-8">    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">    <link rel="stylesheet" href="http://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">    <link rel="stylesheet" type="text/css" href="style.css">    <title>HTML Form</title>    <meta name="viewport" content="width=device-width, initial-scale=1.0"></head><body>    <input type="text" name="example" id="example">    <button type="button" class="btn btn-primary" id="proceed">Proceed</button>    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>    <script src="http://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script>    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>    <script src="code.js"></script></body>代码.js:$(document).ready(function () {    $("#proceed").click(function () {        var request = $.post("script.php", { // Post input to php            formData: $("#example").val()        }, function (response) {            console.log(response);        });    });});脚本.php:<!DOCTYPE html><html><body>    <?php    $example_input = isset($_POST["formData"]) ? $_POST["formData"] : null;    $keywords = preg_split("/[\s,]+/", $example_input);    echo json_encode($keywords);    ?></body></html>
查看完整描述

2 回答

?
森林海

TA贡献2011条经验 获得超2个赞

这就是 PHP 的工作方式。外面的任何东西<?php ... ?>都正常输出。这就是将静态 HTML(或任何其他语言)与动态结果混合的方式。

一个只应该返回 JSON 的脚本不应该在它之前或之后包含任何 HTML 代码。


查看完整回答
反对 回复 2021-10-15
?
BIG阳

TA贡献1859条经验 获得超6个赞

将您的 script.php 更改为仅包含 php:


<?php

$example_input = isset($_POST["formData"]) ? $_POST["formData"] : null;

$keywords = preg_split("/[\s,]+/", $example_input);

echo json_encode($keywords);

?>

然后它只会返回那部分!


查看完整回答
反对 回复 2021-10-15
  • 2 回答
  • 0 关注
  • 119 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信