Javascript 为什么ajax';邮政';不起作用?

Javascript 为什么ajax';邮政';不起作用?,javascript,php,ajax,post,Javascript,Php,Ajax,Post,我想发送数据后,php网站,然后打印php打印不起作用。我已经检查了其他问题,但没有任何帮助。这是行不通的。为什么? JS(工作) PHP后端(不工作) 上一次更新,我想使用ajax会误导您,相反,您可以通过js直接创建一个表单并发布它,就像这样,您将打印php Answer 在js中: var url = '/test.php'; // or https://whatever.com/data.php var value = 'MTIzLGZlZg'; var form = $('<fo

我想发送数据后,php网站,然后打印php打印不起作用。我已经检查了其他问题,但没有任何帮助。这是行不通的。为什么?

JS(工作)

PHP后端(不工作)


上一次更新,我想使用ajax会误导您,相反,您可以通过js直接创建一个表单并发布它,就像这样,您将打印php Answer

在js中:

var url = '/test.php'; // or https://whatever.com/data.php
var value = 'MTIzLGZlZg';
var form = $('<form action="' + url + '" method="post">' +
  '<input type="text" name="my_var" value="' + value + '" />' +
  '</form>');
$('body').append(form);
form.submit();
var url='/test.php';//或https://whatever.com/data.php
var值='MTIzLGZlZg';
变量形式=$('')+
'' +
'');
$('body')。追加(表格);
表单提交();
在php中

<?php
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST,GET,OPTIONS');
header('Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept');
header('Content-type: application/json;charset=utf-8');
// now the posted value is in $_POST
echo $_POST['my_var']; 
?>

如果在浏览器的地址栏中键入URL,则浏览器将向该URL发出请求并在窗口中呈现响应(如果该URL是无法在窗口中呈现的类型,则仅将其保存到文件中)

如果在浏览器窗口中呈现的页面中放置
,则浏览器将向该URL发出请求,并呈现它在页面中返回的图像。(请注意,它不会用图像替换整个页面,它是一个
而不是一个链接)

如果使用Ajax(通过XMLHttpRequest、fetch或jQuery或axios等包装库)对URL发出请求,那么浏览器将向该URL发出请求,并将响应传递回JavaScript

对于以后数据发生的任何事情:您必须编写JavaScript来实现这一点。

您没有在浏览器窗口中加载新网页。无法加载带有
元素的图像。您正在使用JavaScript获取数据。(通常,当人们这样做时,他们会想做一些更有趣的事情,然后用数据替换整个页面,或者将数据附加到页面的最末端。除了让JavaScript作者决定如何处理它之外,没有其他明智的默认做法)

当前版本的jQuery返回一个thenable对象,因此您可以将其视为从以下位置获取数据的承诺:

$.ajax({
  url: 'https://whatever.com/data.php',
  type: 'POST',
  dataType: 'json',
  contentType: 'application/json',
  data: data
}).then(function (data) {
    alert(data);
});
您可能想做一些比仅仅提醒响应更有趣的事情

好的,我明白了,我必须在javascript中响应目标的响应。但是我怎么说这些数据应该打印在目标页面上呢?例如:脚本在google.com上,捕获用户数据,然后将这些数据发送到example.com并在那里打印

这一点越来越不清楚,但假设你的意思是:

当有人访问页面时,JavaScript用于向服务器发出HTTP请求。稍后,当有人访问该服务器上的页面时,我希望显示该数据

然后,您需要将数据存储到某个位置。通常,这将在数据库中

  • JavaScript运行并将数据发布到URL
  • URL处的PHP将其插入数据库
  • 稍后有人访问该服务器上的页面
  • PHP查看数据库中是否有任何数据,并将其包含在页面中
  • 另一方面,如果你的意思是:

    有人正在看一页(a)。当有人访问不同的页面(B)时,JavaScript用于向服务器发出HTTP请求。数据应立即显示在A页上


    …然后您应该查看WebSocket,因为您需要将数据推送到浏览器。

    什么是不工作?你能详细说明一下吗?谢谢如果让我猜的话,您很可能需要
    data:JSON.stringify(data)
    @norbitrial我正在向php站点发送数据。然后我要打印这些数据。但这不起作用。为什么?您希望在哪里看到打印的数据?我的意思是你永远不会在任何地方使用它…AJAX是用来向服务器发送数据,然后同一个AJAX接收来自服务器的响应,而不加载新页面。您必须在JS中处理响应,或者删除AJAX,然后发布一个表单。这只是代码的一个片段。php部分不起作用..php不会直接打印,因为您正在通过ajax调用它,相反,您可以在success函数中获取值并使用它或打印它,查看我的Answer更新,并让我知道您是否有负载值警报。我猜“php打印不起作用”语句是错误的。由于它正在工作,无论如何,请下次尝试更明确,因为问题“ajax post不工作”和“php打印不工作”与您的需要无关,因为他们都在工作…@vrvevvfsjj-这看起来就像有一把铁锹,如果你正确使用它,并且在没有发现实际问题的情况下更换把手和刀片,它会工作得非常好。啊,好的!所以我所要做的就是把数据放到数据库里。我只是想把它打印在页面上。看起来,通过fetch()和node.js,node.js只是简单地接收数据,而没有任何数据库,正如我在本视频中看到的:
    <?php
    header('Access-Control-Allow-Origin: *');
    header('Access-Control-Allow-Methods: POST,GET,OPTIONS');
    header('Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept');
    header('Content-type: application/json;charset=utf-8');
    // now the posted value is in $_POST
    echo $_POST['my_var']; 
    ?>
    
    $.ajax({
      url: 'https://whatever.com/data.php',
      type: 'POST',
      dataType: 'json',
      contentType: 'application/json',
      data: data
    }).then(function (data) {
        alert(data);
    });