gpt4 book ai didi

php - jQuery Ajax 请求返回错误和状态 0

转载 作者:行者123 更新时间:2023-11-29 22:41:17 25 4
gpt4 key购买 nike

我使用这个伪类向服务器发出 Ajax 请求:

function RequestManager(url, params, success, error){
//Save this Ajax configuration
this._ajaxCall = null;
this._url= url;
this._type = params.type;
this._success = function(){
alert("ok");
};
this._error = function(){
alert("ko");
};
}

RequestManager.prototype = {
require : function(text){
var self = this;
this._ajaxCall = $.ajax({
url: this._url,
type: this._type,
data: text,
success: function(xmlResponse){
var responseArray = [];
var response = _extractElements(xmlResponse, arrayResponse);
self._success(response);
},
error: self._error,
complete : function(xhr, statusText){
alert(xhr.status);
return null;
}
});
}

这是将要加载的 PHP:

<?php
header('Content-type: text/xml');

//Do something
$done = true;

$response = buildXML($done);
$xmlString = $response->saveXML();
echo $xmlString;

function buildXML ($done){
$response = new SimpleXMLElement("<response></response>");
if($done){
$response->addChild('outcome','ok');
}
else {
$response->addChild('outcome', 'ko');
}
return $response;
}

当我实例化一个新对象,并用它来加载请求时,它总是返回错误,状态代码为 0。服务器正确生成了 XML 文档。为什么我无法返回正确的 200 代码?

最佳答案

如果这发生在您第二次调用 require 时,那是因为调用 abort() 导致您的回调被调用且状态代码为 0。您应该稍后为第二个请求获得正确的结果。

在 jQuery 1.4 中还有一个错误,您的 success 回调在请求中止后被调用。参见 my answer to Request periodically coming back empty under race conditions .

与此问题无关,您的代码中有一些变量(timerajaxCall)似乎在引用时带有或不带有前导下划线。

关于php - jQuery Ajax 请求返回错误和状态 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2669436/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com