POST Jquery AJAX错误500

我有一个奇怪的问题。 昨天一切正常。</ p>

我有一个简单的php文件,如下所示:</ p>

 &lt;?php 

if( $ _SERVER ['REQUEST_METHOD'] ==='POST'){

echo json_encode(['messageType'=&gt;
'成功','消息'=&gt; $ _ POST ['key']);

die();

}
</ code> </ pre>

带有Ajax查询的js文件:</ p>

  $ .ajax({

dataType:“json”,

type:“POST”,

url:'get.php',

data:{key:'a' },

成功:函数(数据){

alert(data.message)

},

错误:函数(数据){

alert('error') ;}

});
</ code> </ pre>

当字段'key'设置为1个字符(例如'a')时,我收到错误500 从服务器。 但如果我将其更改为至少3个字符,一切正常。</ p>

问题在几个独立的服务器上突然发生。</ p>
</ div>

展开原文

原文

I have a strange problem. Yesterday everything worked fine.

I have a simple php file, as follows:

<?php

  if ($_SERVER['REQUEST_METHOD'] === 'POST') {

  echo json_encode(['messageType' =>
  'success','message'=>$_POST['key']);

  die();

  }

And js file with Ajax query:

$.ajax({

          dataType: "json",

           type: "POST",

          url: 'get.php',

          data: {key: 'a'},

          success: function(data) {

                  alert(data.message)

          },

          error: function(data) {

          alert ('error');}

      });

When the field 'key' is set to 1 character (eg. 'a'), I get an error 500 from the server. But if I change it to at least 3 characters everything works just fine.

The problem's begun occurring suddenly on several independent servers.

douyudouchao6779
douyudouchao6779 你有没有解决问题?
大约 3 年之前 回复
duanli4146
duanli4146 检查网络选项卡和查询参数以验证是否正确传递了a
大约 3 年之前 回复
douxia9826
douxia9826 我可以帮助你,但如果你想允许所有方法,我将创建简单的ajax以及如何响应它,但我不使用JSON,为什么必须使用JSON?
大约 3 年之前 回复
doudiao2335
doudiao2335 500表示检查您的服务器日志而不是查找代码。去检查你的端点get.php
大约 3 年之前 回复
dq62957
dq62957 500是由ph​​p或您的Web服务器引起的。您必须检查错误日志中的php和Web服务器显示此请求的内容。没有日志中的相应信息,它实际上不可能猜测,为什么它可以使用超过三个字符,但会失败少于三个。
大约 3 年之前 回复
donglei3370
donglei3370 对。在原始文件中没有;
大约 3 年之前 回复
duanpu2272
duanpu2272 我不知道会是什么,但我不认为messageType之后的分号应该在那里。
大约 3 年之前 回复

2个回答



错误500意味着您的PHP端点应该有问题。
首先删除分号并尝试它是否有效:</ p >

 &lt;?php 
if($ _SERVER ['REQUEST_METHOD'] ==='POST'){
echo json_encode(['messageType'=&gt;'success', 'message'=&gt; $ _ POST ['key']);
die();
}
</ code> </ pre>
</ div>

展开原文

原文

Error 500 means there should be something wrong with your PHP Endpoint. At first remove the semicolon and try if it works:

<?php
    if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    echo json_encode(['messageType' =>'success','message'=>$_POST['key']);
    die();
}



如果没有$ _SERVER ['REQUEST_METHOD']变量可用(取决于服务器),你将从一开始就获得500 。 由于语法原因,json_encode也无法正常工作。</ p>

 &lt;?php 
if(isset($ _ POST ['key'])){
echo json_encode(array) ('messageType'=&gt;'成功','消息'=&gt; $ _ POST ['key']));
die();
}
?&gt;

</ code> </ pre>
</ div>

展开原文

原文

If there is no $_SERVER['REQUEST_METHOD'] variable available (which is server dependent) you will get a 500 right from the start. The json_encode was also not working due to syntax.

<?php
  if (isset($_POST['key'])) {
  echo json_encode(array('messageType' => 'success','message'=>$_POST['key']));
  die();
  }
?> 

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问