首页 > 解决方案 > AJAX - 使用相同功能的 500 内部服务器错误

问题描述

我正在尝试在我的项目中使用 AJAX 来处理图像(加载更多信息并删除)。正在加载,但是当我尝试删除其中任何一个时,我收到错误 500 并且未使用 php 脚本。

var page = 1;
var selected = [];
var mediaAll = [];
var jsont = JSON.stringify({"action": "loadMedia", "page": page});
AJAXcall(jsont, "loadMedia");

function AJAXcall(data, action){
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    console.log(xhttp);
    if (this.readyState == 4 && this.status == 200) {
      if(action=="loadMedia"){
        var media = JSON.parse(this.responseText);
        mediaAll = [];
        mediaAll = mediaAll.concat(media);
        mediaLoaded();
      }else if(action=="loadMoreMedia"){
        var media = JSON.parse(this.responseText);
        mediaAll = mediaAll.concat(media);
        mediaLoaded();
      }else if(action=="deleteMedia"){
        response = JSON.parse(this.responseText);
        console.log(response);
        page = 1;
        if(response == true){
          AJAXcall(jsont, "loadMedia");
        }
      }
    }
  };
  xhttp.open("POST", "./libs/img_handler.php", true);
  xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  xhttp.send(data);
}
function deleteSingle(){   
   if(selected.length === 1){
    if (confirm('sure?')) {
      var dataS = {"action": "deleteMedia", "id": selected[0]};
      dataDel = JSON.stringify(dataS);
      AJAXcall(dataDel, "deleteMedia");
    }
   }
}
function loadMore(){
  page++;
  var jsont = JSON.stringify({"action": "loadMoreMedia", "page": page});
  AJAXcall(jsont, "loadMoreMedia");
}

当使用函数加载更多

XMLHttpRequest { onreadystatechange: onreadystatechange(), readyState: 4, timeout: 0, withCredentials: false, upload: XMLHttpRequestUpload, responseURL: " http://localhost:8888/project/libs/img_handler.php ", status: 200, statusText: “OK”,响应类型:“”,响应:“...”}

当使用函数 deleteSingle

XMLHttpRequest { onreadystatechange: onreadystatechange() , readyState: 4, timeout: 0, withCredentials: false, upload: XMLHttpRequestUpload, responseURL: " http://localhost:8888/project/libs/img_handler.php ", status: 500, statusText: “内部服务器错误”,响应类型:“”,响应:“”}

标签: javascriptphpajaxxmlhttprequest

解决方案


您提到您没有使用过 php 脚本,但是 responseURL 似乎指的是 .php 文件。

通常,500 状态代码是指内部服务器错误。请尝试检查错误日志或调试您的代码。

这将帮助您找出错误的原因。


推荐阅读