为什么Ajax得到请求失败

时间:2012-02-19 12:50:03

标签: ajax jquery xmlhttprequest

我的请求的响应是java脚本代码。当我将url放在浏览器中时,我可以在页面上看到整个生成的java脚本代码。传递给$ .ajax的网址格式如下:

http://localhost:8080/vi-api/viapi?action=tag&projectId=45&tagId=345

当我输入上述URL时,我可以看到请求成功。现在,我正在使用jQuery在Ajax请求下使用此URL。

   var finalUrl = "http://localhost:8080/vi-api/viapi?action=tag&projectId=45&tagId=345";
   var req = $.ajax({
             type:"GET",
             url:finalUrl,
             type:"script",
             data:"",
             success: function(html){
                alert('Requese sucessful.');
              },
            complete:function(jqXHR, textStatus) {
                alert("request complete "+textStatus);
             },
            error: function(xhr, textStatus, errorThrown){
                alert('request failed->'+textStatus);
            }             
           });  

问题1:这会发出警告“请求失败错误”。为什么会这样?

问题2:有没有办法在上述过程中返回成功/失败代码?

3 个答案:

答案 0 :(得分:2)

我不确定原因,但我可以提供一些如何调试或发现问题的提示:

1)安装fiddler以查看HTTP请求。

2)输入:“script”,为什么类型是脚本?尝试使用“text / html”。

3)使用complete(jqXHR, textStatus)您可以查看HTTP状态。 more info about $.ajax

答案 1 :(得分:2)

在:

$.ajax({
     type:"GET",
     url:finalUrl,
     type:"script",
     (...)

您的对象中有两次'type'键。所以我认为只有第二个('脚本')。显然'script'不是有效的HTTP方法(如HEAD,GET,PUT,POST等)。您正在查看“脚本”的关键字可能是dataType,可能是xmljsonjsonptext,{{1}之一},或script

不要忘记查看html,这通常是返回脚本内容并调用它的好方法。

答案 2 :(得分:1)

var finalUrl=http://localhost:8080/vi-api/viapi?action=tag&projectId=45&tagId=345;

是非常无效的javascript。你可能意味着将url作为字符串传递:

var finalUrl = 'http://localhost:8080/vi-api/viapi?action=tag&projectId=45&tagId=345';