我遇到了jQuery AJAX调用的问题。有时它可以工作,有时我没有从服务器得到任何响应。传递的参数是正确的,但除了beforeSend
之外,不会调用任何回调函数。我甚至没有从服务器获得HTTP响应头。
请求标头似乎是正确的,看起来完全像正确的调用之一。
有什么建议吗?
[UPDATE] 好的,这是一个代码片段和一个请求标题,但我不认为这是一个实现问题...仅供参考:我已经删除了请求标题中的cookie值
jQuery.ajax
(
{
type: 'POST',
url: 'index.php?eID=doSomeStuff',
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
dataType: 'json',
data:
{
obj_php_config: obj_php_config,
obj_php_search: obj_php_search,
selectedBox: selectedBox
},
error:
function (obj, textStatus, errorThrown)
{
alert("status=" + textStatus + ",error=" + errorThrown);
},
success:
function (data, textStatus)
{
doSomeStuffWithData(data);
}
}
);
Host myDomain.loc User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0.1) Gecko/20100101 Firefox/4.0.1 Accept application/json, text/javascript, */* Accept-Language en-us,en;q=0.5 Accept-Encoding gzip, deflate Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive 115 Connection keep-alive Content-Type application/x-www-form-urlencoded; charset=UTF-8 X-Requested-With XMLHttpRequest Referer http://myDomain.loc/aSite.html?page=1 Content-Length 567 Cookie --redacted by user--
答案 0 :(得分:6)
我意识到这篇文章现在很老了,但想发帖帮助别人。我刚刚解决了类似的(如果不是相同的)问题。
我的问题是,触发AJAX帖子的相同点击事件(通过jquery事件绑定)是使用href重定向页面。因此,帖子实际上没有失败但是被打断了,我认为这就是为什么没有回复信息。
简而言之 - 检查以确保不会在任何地方触发重定向。
根据页面重定向的时间,呼叫可能会不时正常工作。我猜?
无论如何,希望这有助于某人。
答案 1 :(得分:0)
<强>更新强>
你知道 - 我实际上有一个非常类似的问题来考虑它...我仍然到今天仍不确定为什么......
我用
替换了$ .ajax调用$.post( 'url being called',
{ key:value},
function (response) {
// handle success/error response
}
);
我真的不知道这有什么不同。
firebug会给你任何错误状态吗?使用Ajax时,NET信息选项卡非常有用。
有些代码会很好
编辑:如果您正在进行任何跨域帖子,则需要使用带填充的json
答案 2 :(得分:0)
确保您的服务器以这种方式响应:
header('Content-type: application/json');
echo json_encode(array("test" => "test"));
exit;
第二个猜测,关于POST错误,可能是数据对象中的无效obj键,添加引号:
{
"obj_php_config": obj_php_config,
"obj_php_search": obj_php_search,
selectedBox: selectedBox
},
答案 3 :(得分:0)
为了补充一点,我遇到的问题是我的网址被重定向或者我的Chrome扩展程序取消了 Adblock ... 该网址与 * / post_save_advert /
相匹配在禁用特定网站的Chrome扩展程序后,它可以正常工作。 然后我还将它从save_advert重命名为另一个url,因此它不会再被阻止。