繁体   English   中英

Ajax 删除请求返回 200 但触发错误

[英]Ajax delete request returns 200 but fires error

我正在尝试为我的项目创建一个简单的 API。 我正在使用 jquery Ajax 发送 DELETE 请求。 删除请求被发送,执行它应该做的事情(从数据库中删除一个条目),返回状态 200,但会触发错误事件。

我已经在这些帖子上寻找解决方案,但他们无法帮助我:

Ajax 请求返回 200 但触发错误事件Ajax 请求返回 200 OK 但触发错误事件Ajax 删除返回 200 但触发错误事件

这是 AJAX 代码:

        function ajaxCall(method,hmm){ // function that send an ajax request
            $.ajax({
                dataType: 'JSON',
                url: '/APIHandler.php?' + $.param({values:hmm}),
                type: method,
                success: function(response) { // when the request is done delete the previously placed products for new ones
                    console.log(response);
                    const parentDiv = document.querySelector('#basic-grid');
                    removeAllChildNodes(parentDiv);
                    turnToObjects(response);
                },
                error: function(xhr){
                    alert(xhr);
                    console.log(xhr);
                }
              });
        }
...
ajaxCall('DELETE',checked);

APIHandler 代码:

if ($_SERVER['REQUEST_METHOD'] === 'DELETE') {
    $vals = $_GET['values'];
    $API->delete($vals);
}

请求响应:

abort: ƒ (e)
arguments: [Exception: TypeError: 'caller', 'callee', and 'arguments' properties may not be accessed on strict mode functions or the arguments objects for calls to them at Function.r (<anonymous>:1:83)]
caller: [Exception: TypeError: 'caller', 'callee', and 'arguments' properties may not be accessed on strict mode functions or the arguments objects for calls to them at Function.r (<anonymous>:1:83)]
length: 1
name: "abort"
prototype: {constructor: ƒ}
__proto__: ƒ ()
[[FunctionLocation]]: jquery.min.js:2
[[Scopes]]: Scopes[3]
always: ƒ ()
catch: ƒ (e)
done: ƒ ()
fail: ƒ ()
getAllResponseHeaders: ƒ ()
getResponseHeader: ƒ (e)
overrideMimeType: ƒ (e)
pipe: ƒ ()
progress: ƒ ()
promise: ƒ (e)
readyState: 4
responseText: ""
setRequestHeader: ƒ (e,t)
state: ƒ ()
status: 200
statusCode: ƒ (e)
statusText: "OK"
then: ƒ (t,n,r)

我也找不到该错误的任何解决方案

[Exception: TypeError: 'caller', 'callee', and 'arguments' properties may not be accessed on strict mode functions or the arguments objects for calls to them at Function.r (<anonymous>:1:83)]

contentType:'application/json'到您的代码中

而改变dataTypetext

...
dataType: 'text',
contentType:'application/json'
...

您将dataType设置为JSON因此 $.ajax 试图将您的 ajax 响应解析为 JSON,但您的响应为空,因此会引发错误。
从您的请求发送 JSON 响应或删除dataType参数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM