jQuery POST AJAX =>没有响应标题

时间:2011-05-09 08:26:35

标签: jquery ajax post

我遇到了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--

4 个答案:

答案 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,因此它不会再被阻止。