当前位置: 首页 > 知识库问答 >
问题:

$.ajax()post值未到达php

云鸿祯
2023-03-14

我创建了一个Ajax post请求,由于某种原因,PHP脚本没有正确接收post数据。我得到一个500内部服务器错误,后面是“XHR加载失败:POST”。

以下是我的javascript的一部分:

     $.ajax({
            type: "POST",
            url: 'newmessage.php',
            // Generic form data
            data: {name: $("#name").val(), message: $("#message").val()},
                success: function(result){
            showMessages();
            }
      });

以下是PHP:

if(isset($_POST['name']) && isset($_POST['message']))
{
    // Do something
}

详细查看了我的代码后,我认为我在ajax请求中做了一些不正确的事情。在我的PHP文件中,如果我创建一个javascript警报来输出$\u POST变量,则不会打印任何内容。

<?php
$x = $_POST['name'];
?>

<script language="javascript">
    alert ('<?php echo $x; ?>');
</script>

<?php
?>

共有2个答案

师承弼
2023-03-14

XHL代表XMLHttpRequest

听起来像是没有servelet(url问题)。

或者

servlet(php)刚刚中止您的请求(缺少csrf令牌)

解决方案1,检查url

正常通话

    URL:"/newmessage.php"  //modification needs here

Rest电话

    URL:"/http://address/newmessage.php" //keep it in your mind please

解决方案2,

   <form>
   //...
  <input type="hidden" id="token" value="<?php echo $token; ?>" />
   //...
  </form>


function sendDatas(){

var token =$("#token).val();

$.ajaxPrefilter(function (options, originalOptions, jqXHR) {

jqXHR.setRequestHeader('X-CSRF-Token', token);

});

$.ajax({

type: 'POST',

url: '/newmessage.php', // <--- notice the leading slash

data: {

   name: $('#name').val(),

   message: $('#message').val(),

},

success: function(reply) {

   //do stuff... 
}

});

 }
祖波光
2023-03-14

嗯,很难说你的服务器是如何配置的,但是,乍一看,你的网址可能是个问题。

$.ajax({
    type: 'POST',
    url: '/newmessage.php', // <--- notice the leading slash
    data: {
       name: $('#name').val(),
       message: $('#message').val(),
    },
    success: function(reply) {
       //do stuff... 
    }
 });

请在此处查看文档:http://api.jquery.com/jquery.ajax/

此外,如果你使用的是Chrome,你可以使用开发者工具来准确地看到引擎盖下发生了什么。特别是网络选项卡。https://developers.google.com/web/tools/chrome-devtools/

最后,如果您只想对服务器进行故障排除,您可以将jQuery从图片中删除,并使用类似Postman的应用程序。https://www.getpostman.com/apps

 类似资料:
  • 我有一个小而烦人的问题。我真的不习惯使用Web。我尝试使用ajax jquery请求我的php文件。当我想检索从ajax发送的数据时,它返回未定义的索引。我不知道是什么问题,它让我花了很多时间来解决它。谢谢。 下面是我的阿贾克斯代码 当我在php文件中调用下面的代码时,结果是“未定义的索引:数据” //编辑So,当我尝试var_dump($_POST)时;,结果是array(0) {}。我错在哪里

  • 问题内容: 我正在尝试通过AJAX将表单值发布到php文件中。如何收集表单值以发送到“数据”参数内部? HTML: 问题答案: 使用序列化方法: 文件:serialize()

  • 问题内容: 我正在尝试使用POST方法编写XMLHttpRequest。我过去已经使用GET方法设法使用XMLHttpRequest,但是在POST方面却很挣扎。 这是我的代码: 它基本上调用PHP脚本,然后将一些信息添加到数据库中。 问题答案: 好吧,我已经设法对它进行了排序。 奇怪的原因虽然可能与沙箱安全性有关,但是我没有使用完整的URL地址,而是使用了文件的相对路径,现在可以使用了。 谢谢大

  • 问题内容: 我正在尝试使用$ .post方法调用Web服务,我已经使用$ .ajax方法使它工作了: 但是,当我将相同的方法移到$ .post方法中时,它将无法工作: 我想念什么? 问题答案: 它不起作用,因为在您的方法中,您无法将请求的内容类型设置为。因此,不可能使用调用ASP.NET PageMethod,因为ASP.NET PageMethod需要JSON请求。您将不得不使用。 我将只修改,

  • 我试图创建我的第一个Spring后端,简单的应用程序,存储音乐专辑。不幸的是,我创建的endpoint没有一个工作(我使用postman测试了它们,请求返回404,没有找到)。以下是我所有与项目相关的文件/代码: 我所尝试的: 结果: 正在添加应创建数据库的dataSource方法。 @bean@ConfigurationProperties(前缀=“spring.DataSource”)publ

  • 问题内容: 似乎已经在stackoverflow上讨论过类似的内容,但是我找不到完全一样的东西。 我正在尝试发送带有CORS(跨源资源共享)的Cookie,但无法正常工作。 这是我的代码。 我在请求HEADER中看不到此Cookie。 问题答案: 您无法通过JavaScript在CORS请求上设置或读取Cookie。尽管CORS允许跨域请求,但cookie仍然受浏览器的同源策略约束,这意味着只有来