JQuery:Ajax调用返回一个不合规定的错误消息

时间:2011-07-15 18:30:47

标签: ajax jquery

问题描述

每次尝试调用HTML页面时,都会收到一条非描述性的“错误”消息。但是,返回了响应头,但没有实际响应。我已经走过了JQuery,现在又失去了我能做的其他事情?

最终,我试图让以下网址http://www.impre.com/uForms/external/getWeatherByZip?modules=top显示在我在主页面的HTML中创建的div中。

代码

        <script type="text/javascript"> 
        $.ajax ({ 
            type: "GET",
            url: "http://www.impre.com/uForms/external/getWeatherByZip",
            data: "modules=top", 
            success: function(data) 
                { 
                    alert('Load was performed.');
                    $('#accuWeatherContainerTop').html(data);
                },
            error: function(data, responseText) 
                {
                    try 
                    { 
                        console.log('errData: ', data); 
                        console.log('responseText: ', responseText);
                    } catch(e) { 
                        alert("You don't have Firebug!\nFor shame..."); 
                    }
                },
            complete: function(jqXHR, textStatus) {
                console.log('com_jqXHR', jqXHR.getAllResponseHeaders());
                }
        });
    </script>

注释

  • 经过多次迭代,我找到了几个问题,例如我收到的301错误消息。我终于获得了“200 OK”的GET响应代码,但仍然没有响应文本。

  • 我尝试连接的url是使用Zend Framework,我不确定它最终会如何影响AJAX请求。

解决方案

这确实是同源政策违规行为,所有回复都是准确的。最初的问题是我已经解决的301错误;我一时兴起将其推送到实时网站,生产服务器现在正确显示小部件。谢谢!

3 个答案:

答案 0 :(得分:1)

这可能是Same Origin Policy

的问题

当您从非自己的域

加载它时

答案 1 :(得分:1)

调试此ajax调用的更好方法是向错误函数添加第三个参数。从jquery文档:

  

错误(jqXHR,textStatus,errorThrown)函数

     

请求失败时要调用的函数。该功能收到   三个参数:jqXHR(在jQuery 1.4.x,XMLHttpRequest中)对象,a   描述发生的错误类型的字符串和可选项   异常对象,如果发生了一个。第二个可能的值   参数(除了null)是“超时”,“错误”,“中止”和   “parsererror”。发生HTTP错误时,errorThrown会收到   HTTP状态的文本部分,例如“未找到”或“内部”   服务器错误。“

第三个参数errorThrown可能包含一些有用的信息,可帮助您继续修复。

答案 2 :(得分:1)

你应该做的是向你服务器上的文件发出一个AJAX请求,比方说request.php。在request.php中,您将要执行某种请求(取决于您正在使用的服务器端语言,如果它确实是PHP - cURL,)从页面请求内容你最初只是试图通过AJAX。然后,打印该响应。

正如@genesis所说,你要做的就是XSS,它是被禁止的。